一个用于在PHP中创建和运行任务的库。

1.0.0 2019-05-03 21:10 UTC

README

Code Climate Build Status Test Coverage

一个使用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 许可证授权