krydos / php-notifier
PHP任务调度器
0.2.0
2016-03-27 11:58 UTC
Requires (Dev)
- phpunit/phpunit: 5.2.*
This package is not auto-updated.
Last update: 2024-09-14 18:42:13 UTC
README
PHPNotifier
PHPNotifier - 是一个任务调度器。允许您安排任何您希望执行的任务。
安装
将以下内容添加到您的composer.json文件中 - "krydos/php-notifier": "*"
用法
首先,您需要运行一个脚本,该脚本将监听新任务并在时间到来时执行它们。
php ./vendor/bin/phpnotifier /绝对路径/to/db.file
或者,如果您想将其在后台运行
nohup php ./vendor/bin/phpnotifier /绝对路径/to/db.file & >/dev/null 2>&1 &
使用nohup
,您可以在nohup.out
文件中查看日志输出。
如何创建新任务
use \PHPNotifier\PHPNotifier; $scheduler = new PHPNotifier(PHPNotifier::FILE_METHOD, '/absolute/path/to/db.file'); $scheduler->scheduleTaskIn(10, 'echo', [ 'Hello world!' '>' 'any_file' ]);
此任务将在10秒后执行。要执行的命令是echo Hello world! > any_file
有时您知道何时要运行任务,并且不想计算剩余时间,此时可以使用另一种方法 - 与相同签名的scheduleTaskAtTime
。
use \PHPNotifier\PHPNotifier; $scheduler = new PHPNotifier(PHPNotifier::FILE_METHOD, '/absolute/path/to/db.file'); $scheduler->scheduleTaskAtTime(1459382400, 'echo', [ 'Hello world!' '>' 'any_file' ]);
此方法接受Unix时间戳或\DateTime对象作为第一个参数。如果您使用PHP的DateTime对象,可以通过getTimestamp()
方法获取此值。
请确保您要尝试执行的二进制文件存在于您的系统中
待办事项
- 支持Redis作为任务存储方法
- 尽可能支持多种存储方法
允许将DateTime对象作为scheduleTaskAtTime
方法的第一个参数允许将任何有效的日期字符串作为scheduleTaskAtTime
方法的第一个参数- 允许安排可重复的任务
贡献
没有特殊规则。只需发送一个拉取请求或创建一个问题。