barracudanetworks / jobrunner
A library to create and run jobs in PHP.
Installs: 20 450
Dependents: 0
Suggesters: 0
Security: 0
Stars: 7
Watchers: 8
Forks: 4
Open Issues: 0
pkg:composer/barracudanetworks/jobrunner
Requires
- php: >=5.3.0
- barracudanetworks/forkdaemon-php: ^2.0.0
- psr/log: ^1.0.0
Requires (Dev)
- codeclimate/php-test-reporter: ^0.4.0
- mockery/mockery: ^0.9.4
- phpunit/phpunit: ^4.8
This package is auto-updated.
Last update: 2025-10-07 07:09:39 UTC
README
A library to make runnable jobs with PHP easy. The library also supports creating jobs that have children backed by our PHP Fork Daemon.
Usage
Create your jobs by extending Job, or the special ForkingJob class for work that will utilize forking children.
Instantiate 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 php examples/jobrunner.php.
Setting options
new JobDefinition()accepts 5 parameters: First, a required job class name (e.g.Vendor\Package\Job::classor'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."11:30").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 definedJobDefinition- To set the number of child workers in a forking job, and the number of work units they should process, override
__constructinForkingJobto 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. Seeexamples/ForkingComplimenter.phpfor an example.- Note: You should still call
parent::__construct($logger)before using the above methods.
Caveats
- 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, asdeclare(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.
License
Copyright 2015 Barracuda Networks, Inc. Licensed under the MIT License