bpetheo / yii2-cron
yii2框架的Cron实现。执行在yii配置中定义的预定命令。
Requires
- yiisoft/yii2: *
This package is not auto-updated.
Last update: 2024-09-28 19:58:21 UTC
README
yii2框架的Cron实现。执行在yii配置中定义的预定命令。因此,如果您需要添加/删除或重新安排cron作业,您只需要修改和部署配置文件,无需摆弄crontab或其他操作。如果您正在部署许多应用程序并且/或者部署到多台服务器,这会很有用。只需安装一次服务器端脚本即可使用。服务器端脚本可以处理多个项目(包括自动发现添加/删除的存储库)。它们可以在以下位置找到:https://github.com/bpetheo/autocron-server
您还可以为作业分配标签,因此如果您在多台服务器上使用相同的配置文件,您仍然可以运行不同的cron作业(或具有不同时序的相同作业)
组件将一些基本日志记录到runtime/logs/{command}.{action}.{date}.log
安装
通过composer获取: composer require bpetheo/yii2-cron ~1.0.0
添加到config/console.php中的控制器映射
'controllerMap' => [
// ...
'cron' => [
'class' => 'bpetheo\yii2cron\CronController',
'defaultAction' => 'run',
],
],
配置
在设置时序值时,您可以使用标准的cron语法元素(*
,*/5
,15
,0,30
)。命令应该是./yii的命令/动作参数。例如,如果您将/path_to_project/yii hello/index
设置在标准的cron表中,则您想要在配置中使用的命令将是hello/index
。
完整的配置块看起来像这样
'params' => [
// other parameters...
'cronTab' => [
// run hello/index command every 5 minutes on 21th septermber and
// 21th december in default and dev environment
'Sample cronjob - full config' => [
'enabled' => true,
'command'=>'hello/index',
'timing' => [
'min' => '*/5',
'hour' => '*',
'day' => '21',
'month' => '9,12',
'dayofweek' => '*',
],
'tags' => [
'default',
'development',
],
],
// other parameters...
],
您还可以使用简化格式,只需设置与默认值不同的参数
'params' => [
// other parameters...
'cronTab' => [
// execute hello/index every 30 minuted
// short form, only non-default values are set explicitly
'Sample cronjob - short config' => [
'enabled' => true,
'command'=>'hello',
'timing' => [
'min' => '0,30',
],
],
],
// other parameters...
],
需要command
参数。也有简单的字符串格式如* * * * * controller/action
可用。
'params' => [
// other parameters...
'cronTab' => [
// both cron jobs controller/action1 and controller/action2
// valid and runs every minute
[
'command'=>'controller/action1',
],
'* * * * * controller/action2',
],
// other parameters...
],
贡献
我制作了这个项目来满足我的需求。您可能有不同的用例,这没有被涵盖,但请自由扩展或修改代码,使其适合更多的人。