krydos/php-notifier

PHP任务调度器

0.2.0 2016-03-27 11:58 UTC

This package is not auto-updated.

Last update: 2024-09-14 18:42:13 UTC


README

Build Status

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方法的第一个参数
  • 允许安排可重复的任务

贡献

没有特殊规则。只需发送一个拉取请求或创建一个问题。