PHP Async Executor: Run PHP scripts in parallel using the CLI version

Recommend this page to a friend!
  Info   View files Example   View files View files (10)   DownloadInstall with Composer Download .zip   Reputation   Support forum   Blog    
Last Updated Ratings Unique User Downloads Download Rankings
2021-06-08 (3 days ago) RSS 2.0 feedNot yet rated by the usersTotal: 50 This week: 50All time: 10,015 This week: 3Up
Version License PHP version Categories
asyncexecutor 7GNU General Publi...5Utilities and Tools, Files and Folders, U..., C..., L..., P...
Description Author

This package can run PHP scripts in parallel using the CLI version.

It can run a given PHP script by executing the PHP CLI version. It passes the name of the script and the parameter values as command line parameter values.

The package may start a process to run an existing script file. It may also wait a given time if the script file does not exist, allowing another process to create the script file while the package waits.

Picture of Alexandre Sinício
  Performance   Level  
Name: Alexandre Sinício <contact>
Classes: 7 packages by
Country: Brazil Brazil
Age: 36
All time rank: 2238151 in Brazil Brazil
Week rank: 4 Up1 in Brazil Brazil Up
Innovation award
Innovation award
Nominee: 2x

 

Details

Async Processor

This a simple class that can help spawning CLI processes, either as "run-and-forget" or "run-and-keep-running" modes.

Usage

Run-and-forget

Useful when you want to spawn a CLI process and make it run in the background. You will NOT get any return from the process itself.

Basic usage:

$async = new AsyncExecutor('/usr/bin/php');
$async->runProcess('path_to_script', ['param01', 'param02']);

Run-and-keep-running

Useful when you want to spawn CLI processes and keep them running no matter what.

The class monitors the PID of the processes to check if they are still running, and restarts automatically if needed.

Basic usage:

$async = new AsyncExecutor('/usr/bin/php');
$multiAsync = new AsyncMultiProcess($async);
$multiAsync->addProcess(new AsyncProcess('instance_01', 'path_to_script_01', ['param01']));
$multiAsync->addProcess(new AsyncProcess('instance_02', 'path_to_script_02', ['param02', 'param03']));
$multiAsync->keepRunningProcesses();

If a process fails to execute due to a non-existing script, you can set the time the class will wait to retry the execution (default, 5 seconds).

You can also configure the AsyncMultiProcess to abort execution if non-existing script is detected, effectively canceling everything (running processes will not be closed, though).

  Files folder image Files  
File Role Description
Files folder imageexamples (3 files)
Files folder imagesrc (4 files)
Accessible without login Plain text file composer.json Data Auxiliary data
Accessible without login Plain text file LICENSE Lic. License text
Accessible without login Plain text file README.md Doc. Documentation

  Files folder image Files  /  examples  
File Role Description
  Accessible without login Plain text file bg_process.php Aux. Auxiliary script
  Accessible without login Plain text file run_and_forget.php Example Example script
  Accessible without login Plain text file run_and_keep_running.php Example Example script

  Files folder image Files  /  src  
File Role Description
  Plain text file AsyncExecutor.php Class Class source
  Plain text file AsyncMultiProcess.php Class Class source
  Plain text file AsyncProcess.php Class Class source
  Plain text file FileNotFoundException.php Class Class source

 Version Control Unique User Downloads Download Rankings  
 100%
Total:50
This week:50
All time:10,015
This week:3Up

For more information send a message to info at phpclasses dot org.