barracudanetworks / jobrunner
一个用于在PHP中创建和运行任务的库。
1.0.0
2019-05-03 21:10 UTC
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: 2024-09-07 04:43:25 UTC
README
一个使用PHP轻松创建和运行任务的库。该库还支持创建由我们的PHP Fork守护进程支持的任务。
使用方法
通过扩展Job
类,或为将利用子进程的工作创建特殊的ForkingJob
类来创建您的任务。
实例化JobRunner
,并使用addJob(JobDefinition $definition)
方法添加您的任务。然后在一个循环中执行run()
方法以守护进程化该过程。
通过运行php examples/jobrunner.php
来尝试examples
文件夹中的示例。
设置选项
new JobDefinition()
接受5个参数:首先是一个必需的任务类名(例如Vendor\Package\Job::class
或'Vendor\Package\Job'
)。接下来的4个是可选的enabled
可以设置为"false"
以禁用任务。默认情况下,它设置为"true"。run_time
可以设置为任务应运行的时间(例如"11:30"
)。interval
可以设置为任务应运行的时间间隔(以秒为单位)(例如3600
表示每小时运行一次)。max_run_time
可以设置为(以秒为单位)以防止任务运行时间超过特定时间(例如86400
表示一天后停止运行)
JobRunner->addJob()
接受一个参数:先前定义的JobDefinition
- 要设置分叉任务中的子工作进程数量以及它们应处理的工作单元数量,请覆盖
ForkingJob
中的__construct
以设置自己的设置$this->setNumChildren(int)
设置您的任务可以拥有的最大子进程数。$this->setItemCount(int)
设置每个子进程应完成的工作量。请参阅examples/ForkingComplimenter.php
中的示例。- 注意:在使用上述方法之前,您仍然需要调用
parent::__construct($logger)
。
注意事项
- 在包含fork守护进程库之前,您需要指定
declare(ticks=1);
,否则信号将无法处理。这必须在主PHP文件中完成,因为declare(ticks=N);
只对该文件以及在其中声明的文件包含的文件有效。参考:PHP 文档 - 不支持OSX和Windows。
许可证
版权所有2015 Barracuda Networks, Inc. 根据 MIT 许可证授权