trig / laracron
此包最新版本(v0.1.2)没有可用的许可证信息。
该工具添加了通过简单的JSON配置管理基于Cron的CLI任务的功能
v0.1.2
2018-10-08 08:35 UTC
Requires
- dragonmantank/cron-expression: ^2.2
- illuminate/cache: ^5.7
- illuminate/console: ^5.7
- illuminate/container: ^5.7
- illuminate/events: ^5.7
- illuminate/filesystem: ^5.7
- illuminate/redis: ^5.7
- symfony/console: ^4.1
- symfony/process: ^4.1
This package is auto-updated.
Last update: 2024-09-08 23:20:12 UTC
README
此工具通过简单的JSON配置添加了管理基于Cron的CLI任务的功能。配置完成后,允许您在不使用传统的Cron界面的情况下控制计划任务。受Laravel 任务调度 启发
安装
Manager 设计为作为 Phar 可执行文件使用,因此您需要先构建它。首先克隆项目
git clone --depth 1 https://github.com/trig/lara-cron.git
cd lara-cron
然后使用以下命令编译 Phar 可执行文件
php -dphar-readonly=0 bin/laracron.php build:phar
完成此步骤后,您将在当前目录中找到 laracron.phar
文件。然后您只需要添加一个 Cron 任务
* * * * * cd /path-to-your-project && php laracron.phar schedule:run >> /dev/null 2>&1
这就是全部需要的。
用法
现在您可以配置管理器以适应您的项目需求,只需将 laracron.phar
文件复制到项目根目录。以下是默认配置文件(laracron.json)
{
"scheduledJobs": {
"everyMinute": [
"php --version"
],
"* * * * *": [
]
},
"cache.default": "file",
"log_to": "laracron_cache/laracron.log",
"cache.prefix": "laracron",
"cache.stores.file": {
"driver": "file",
"path": "laracron_cache"
},
"cache.stores.redis": {
"driver": "redis",
"host": "localhost",
"password": null,
"port": 6379,
"database": 0
}
}
以下是每个配置选项的简要说明
scheduledJobs
是主要配置选项,用于计划CLI命令,它是一个具有键作为特定方法名称的Cron作业定义的JSON对象。您可以在任务调度 页面上查看完整列表。这里有一些示例
基于上述描述,让我们定义一些简单的任务并计划它每15分钟运行一次,只需省略对象访问运算符和括号即可定义
...
"scheduledJobs": {
"everyFifteenMinutes": [
"echo 'Hey, I\'ll execute each 15 minutes'"
],
// or just like you define a regular cron job:
"*/15 * * * *": [
"echo 'Hey, I\'ll execute each 15 minutes'"
]
},
...
您可能已经注意到,不支持参数化定义(例如 ->weeklyOn(1, '8:00');
),但它完全由Cron语法覆盖。
cache.default
表示缓存引擎名称,可以是 file
或 redis
log_to
(可选)
日志文件的相对路径,其中将记录执行输出,请注意日志文件不会轮换
cache.prefix
用于缓存条目创建的前缀
cache.stores.file
文件缓存引擎的配置
cache.stores.redis
Redis缓存引擎的配置