daybreak/crontab

Linux 定时器

1.0 2018-09-30 06:50 UTC

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 文件。