trig/laracron

此包最新版本(v0.1.2)没有可用的许可证信息。

该工具添加了通过简单的JSON配置管理基于Cron的CLI任务的功能

v0.1.2 2018-10-08 08:35 UTC

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

表示缓存引擎名称,可以是 fileredis

log_to (可选)

日志文件的相对路径,其中将记录执行输出,请注意日志文件不会轮换

cache.prefix

用于缓存条目创建的前缀

cache.stores.file

文件缓存引擎的配置

cache.stores.redis

Redis缓存引擎的配置