File tree Expand file tree Collapse file tree 5 files changed +29
-17
lines changed Expand file tree Collapse file tree 5 files changed +29
-17
lines changed Original file line number Diff line number Diff line change @@ -26,3 +26,6 @@ parameters:
2626 options :
2727 stream : ' var/log/%date%-default.log'
2828 level : 400
29+ server :
30+ max_concurrency : 2048
31+ workers : 16
Original file line number Diff line number Diff line change 44declare (strict_types=1 );
55
66use Antidot \Application \Http \Application ;
7+ use Antidot \React \Child ;
78use Psr \Log \LoggerInterface ;
89use React \EventLoop \LoopInterface ;
910use React \Http \Server ;
1819 (require 'router/routes.php ' )($ application , $ container );
1920
2021 $ loop = $ container ->get (LoopInterface::class);
21-
22- $ server = $ container ->get (Server::class);
23- $ server ->on ('error ' , static function ($ err ) use ($ container ) {
24- $ logger = $ container ->get (LoggerInterface::class);
25- $ logger ->critical ($ err );
26- });
27-
28- $ socket = $ container ->get (Socket::class);
29- $ server ->listen ($ socket );
22+ Child::fork (
23+ shell_exec ('nproc ' ) ? (int )shell_exec ('nproc ' ) : 16 ,
24+ static function () use ($ container ) {
25+ $ server = $ container ->get (Server::class);
26+ $ server ->on ('error ' , static function ($ err ) use ($ container ) {
27+ $ logger = $ container ->get (LoggerInterface::class);
28+ $ logger ->critical ($ err );
29+ });
30+
31+ $ socket = $ container ->get (Socket::class);
32+ $ server ->listen ($ socket );
33+ });
3034
3135 $ loop ->run ();
3236});
Original file line number Diff line number Diff line change 1111
1212return static function (Application $ app ): void {
1313 $ app ->pipe (ErrorMiddleware::class);
14- $ app ->pipe (ExceptionLoggerMiddleware::class);
15- $ app ->pipe (RequestLoggerMiddleware::class);
14+ // $app->pipe(ExceptionLoggerMiddleware::class);
15+ // $app->pipe(RequestLoggerMiddleware::class);
1616 $ app ->pipe (RouteDispatcherMiddleware::class);
1717 $ app ->pipe (RouteNotFoundMiddleware::class);
1818};
Original file line number Diff line number Diff line change 1010use React \Promise \FulfilledPromise ;
1111use React \Promise \PromiseInterface ;
1212use function get_class ;
13+ use function React \Promise \resolve ;
1314use function sprintf ;
1415
1516class SomeEventListener
@@ -24,9 +25,7 @@ public function __construct(LoggerInterface $logger)
2425
2526 public function __invoke (SomeEvent $ event ): PromiseInterface
2627 {
27- $ promise = new FulfilledPromise ($ event );
28-
29- return $ promise ->then (function (SomeEvent $ event ) {
28+ return resolve ($ event )->then (function (SomeEvent $ event ) {
3029 $ this ->logger ->debug (sprintf ('Event `%s` captured. ' , get_class ($ event )));
3130 });
3231 }
Original file line number Diff line number Diff line change 44
55namespace App \Application \Http \Middleware ;
66
7+ use Antidot \React \PromiseResponse ;
78use Psr \Http \Message \ResponseInterface ;
89use Psr \Http \Message \ServerRequestInterface ;
910use Psr \Http \Server \MiddlewareInterface ;
1011use Psr \Http \Server \RequestHandlerInterface ;
12+ use function React \Promise \resolve ;
1113
1214class HelloWorld implements MiddlewareInterface
1315{
1416 public function process (ServerRequestInterface $ request , RequestHandlerInterface $ handler ): ResponseInterface
1517 {
16- $ greet = $ request ->getQueryParams ()['greet ' ] ?? 'World ' ;
17- $ request = $ request ->withAttribute ('greet ' , $ greet );
18+ return new PromiseResponse (resolve ($ request )->then (
19+ function (ServerRequestInterface $ request ) use ($ handler ): ResponseInterface {
20+ $ greet = $ request ->getQueryParams ()['greet ' ] ?? 'World ' ;
21+ $ request = $ request ->withAttribute ('greet ' , $ greet );
1822
19- return $ handler ->handle ($ request );
23+ return $ handler ->handle ($ request );
24+ }
25+ ));
2026 }
2127}
You can’t perform that action at this time.
0 commit comments