valorin / cronsync
此包已被废弃且不再维护。没有建议的替代包。
CronSync是一种在代码(因此也在版本控制中)内定义 artisan 命令 crontab 调度的方式,通过将更新 crontab 作为部署过程的一部分来实现。
v1.0.3
2014-08-16 23:24 UTC
Requires
- php: >=5.4.0
- illuminate/console: ~4.2
- illuminate/support: ~4.2
This package is auto-updated.
Last update: 2019-09-08 09:39:55 UTC
README
受Dispatcher启发,CronSync是在部署过程中通过更新 crontab 的方式,在代码内(因此也在版本控制中)定义 artisan 命令 crontab 调度的方法,无需每分钟运行一个单独的进程来检查任何 crontab 任务。
在推送新代码后运行 php artisan cronsync
将确保当前用户的 crontab 自动配置以匹配 crontab 定义。
安装
使用 composer 将包添加到您的应用程序
composer require "valorin/cronsync:~1.0"
将服务提供者添加到 ./app/config/app.php
中的 providers
列表
'providers' => array(
...
'Valorin\CronSync\ServiceProvider',
),
使用方法
要在 artisan 命令中定义 crontab 调度,首先将 CronCommandInterface
添加到命令中
use Valorin\CronSync\CronCommandInterface;
...
class ClassName extends Command implements CronCommandInterface
然后在类中实现 schedule()
命令以返回 crontab 调度表达式
/**
* Returns the cron schedule to use
*
* @return string|string[]
*/
public function schedule()
{
// Every hour at 42 minutes past the hour
return '42 * * * *';
}
要支持 artisan 命令的参数,返回一个数组
return ['*/5 * * * *', '--option --option2="value" argument1'];
然后运行 dry-run
命令以检查 crontab 是否正确配置
php artisan cronsync --dry-run
如果一切看起来都很好,您可以从末尾去掉 --dry-run
php artisan cronsync
重要:如果您的 crontab 条目不与 artisan 命令相关联但包含 base_path()
,则 CronSync 会删除它们。您可以通过 artisan 命令实现它们,或者将它们添加到 custom_commands
配置选项中。
配置
要更改默认配置,运行
./artisan config:publish "valorin/cronsync"
然后编辑配置文件
./app/config/packages/valorin/cronsync/config.php