This class can emulate the execution of program threads using separate HTTP requests to the same script.
It establishes an HTTP connection to the same Web server to execute the same PHP script. It sends a request passing the name a function to execute and an argument to be passed to that function.
The requested script executes some code that detects the thread execution request and calls the specified function.
When the thread request script ends, the return values of the called function is returned as a serialized string.
The calling script can execute other tasks while the thread script runs. The results may be collected later when the thread script ends.
Prize: One book of choice by O'Reilly
|Some applications need to perform several tasks that may take a while to finish. When there are many tasks to execute, it may take a long time to finish all of them if they are executed sequentially, i.e. one after another.
A possible solution for this problem is to execute several tasks at the same time using separate processes or threads.
PHP has the pcntl extension that can be used to run multiple processes in parallel. However, this extension is only available in Linux or Unix like operating systems.
This package provides an alternative solution that consists in sending multiple HTTP requests to the same Web server on which PHP is running.
Each HTTP request triggers the execution of a different task. Many requests can be run at the same time without having to wait for each one to finish.
This solution can run in Windows and all other operating systems supported by PHP, including PHP environments on which the pcntl extension is not installed.