-
RoadRunner advertises high performance through multi-threading and coroutines, but how does this actually work at the PHP level? I couldn't find any resources that explain this in detail, but if there are any I'd love to read them. Basically, how does RoadRunner ensure that a single PHP app can actually work on multiple requests at the same time, instead of being blocked by a single process at a time like classic PHP? |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment 13 replies
-
A simple diagram is here: #622 (comment) RR runs a set of processes with PHP workers inside. The workers are similar and path to them specified by the server: https://github.com/spiral/roadrunner-binary/blob/master/.rr.yaml#L23. So, there is no single PHP app, there are a set of processes with a PHP inside and RR manages these processes and extends functionality by the plugins. You can find simplified docs here: https://github.com/spiral/roadrunner/tree/master/pkg/doc |
Beta Was this translation helpful? Give feedback.
A simple diagram is here: #622 (comment)
RR runs a set of processes with PHP workers inside. The workers are similar and path to them specified by the server: https://github.com/spiral/roadrunner-binary/blob/master/.rr.yaml#L23. So, there is no single PHP app, there are a set of processes with a PHP inside and RR manages these processes and extends functionality by the plugins.
You can find simplified docs here: https://github.com/spiral/roadrunner/tree/master/pkg/doc