daybreak / crontab
Linux 定时器
1.0
2018-09-30 06:50 UTC
Requires
- friendsofphp/php-cs-fixer: ^2.12
- symfony/process: ^4.1
Requires (Dev)
- phpunit/phpunit: ^7.2
This package is auto-updated.
Last update: 2024-09-14 20:20:15 UTC
README
PHP crontab 是 Linux crontab 在 PHP 中的实现(本质上仍然需要 crontab 作为定时启动驱动),其目的是方便 crontab 管理。
开始使用
安装
首先,您应该需要 crontab 包,推荐的方式是通过 Composer 进行安装。
$ composer require dawn/crontab
然后,将 Linux crontab 命令添加到运行 PHP crontab。
* * * * * /path/to/project && php crontab.php 1>>/dev/null 2>&1
最后,您可以在 crontab.php 中编写 crontab 任务。
运行任务
Crontab 管理器是任务管理器,因此您可以使用管理器添加或删除任务,以下是一个示例。
<?php require dirname(__DIR__) . '/vendor/autoload.php'; use Crontab\CrontabManager; $manager = CrontabManager::getInstance(); $manager->add('backup', array( 'command' => 'ls -al', 'schedule' => '* * * * *', 'enable' => true, 'output' => dirname(__FILE__) . '/log/output.log', 'error' => dirname(__FILE__) . '/log/error.log', )); $manager->run();
您可以通过管理器获取 crontab 并更改命令或更改函数。
use Crontab\CrontabManager; $manger = CrontabManager::getInstance()->get('backup'); $manager->setMinute('*/10') ->setHour('12') ->setDay('*') ->setMonth('SEP') ->setWeek('5L') ->setCommand('cp back.php ~/index') ->enable() ->setOutput('/fixtures/output.txt') ->setErrorOutput('/fixtures/error.txt') ->run() //get output data $data = $manager->getData(); $error_data = $manager->getErrorData();
您可以删除不再需要的任务。
$manager->remove('backup');
您可以通过启用选项或启用/禁用功能轻松地启用或禁用 crontab。
use Crontab\CrontabManager; CrontabManager::getInstance()->enable('backup'); CrontabManager::getInstance()->disable('backup');
有关此项目的更多信息,您可以阅读此源代码,如果您有任何问题,欢迎提出 issue 或 request。
许可证
本项目遵循 MIT 许可证。有关完整许可证文本,请参阅 LICENSE 文件。