PHP Job Runner
A library to make runnable jobs with PHP easy. The library also supports creating jobs that have children backed by our PHP Fork Daemon.
Create your jobs by extending
Job, or the special
ForkingJob class for work that will utilize forking children.
JobRunner, and add your jobs using the
addJob(JobDefinition $definition) method. Then execute the
run() method in a loop to daemonize the process.
Try the example in the
examples folder by running
new JobDefinition()accepts 5 parameters: First, a required job class name (e.g.
'Vendor\Package\Job'). The next 4 are optional:
enabledmay be set to
"false"to disable the job. By default, it is set to "true".
run_timemay be set to a time at which a job should be run (e.g.
intervalmay be set to an interval (in seconds) on which the job should run (e.g.
3600to run every hour).
max_run_timemay be set (in seconds) for preventing a job to run longer than a certain time (e.g.
86400to stop running after a day)
JobRunner->addJob()accepts one parameter: The previously defined
- To set the number of child workers in a forking job, and the number of work units they should process, override
ForkingJobto set your own settings:
$this->setNumChildren(int)sets the max number of children your job can have.
$this->setItemCount(int)sets the amount of work each child should do. See
examples/ForkingComplimenter.phpfor an example.
- Note: You should still call
parent::__construct($logger)before using the above methods.
- You need to specify
declare(ticks=1);before inclusion of the fork-daemon library, otherwise signals wont be handled. This must be done in the main PHP file, as
declare(ticks=N);only works for the file, and files included by the file, in which it is declared in. Reference: PHP Documentation
- OSX and Windows are unsupported.
Copyright 2015 Barracuda Networks, Inc. Licensed under the MIT License