shop25 / deployer-cron
使用 Setono cron builder 在部署过程中生成 cron 文件
v0.3.1
2021-05-13 03:35 UTC
Requires
- php: ^7.4 || ^8.0
- deployer/deployer: dev-master
- setono/cron-builder: dev-master
- symfony/console: ^4.4 || ^5.0
- thecodingmachine/safe: ^1.0
- webmozart/assert: ^1.0
Requires (Dev)
- setono/code-quality-pack: ^1.4
This package is auto-updated.
Last update: 2024-09-13 11:13:59 UTC
README
使用 Cron builder 库 在部署过程中简单处理 cron 作业。
安装
$ composer require shop25/deployer-cron
用法
最简单的用法是包含 cron 脚本,该脚本将钩子到默认的 Deployer 事件
<?php // deploy.php require_once 'recipe/cron.php';
Deployer 参数
以下定义了以下 Deployer 参数
注意,默认值 cron_variable_resolvers 是一个空数组,但此库将始终添加一个 ReplacingVariableResolver,该 resolver 包含以下章节中描述的变量(以下)。
构建上下文
默认构建上下文定义在 Deployer 参数 cron_context 中。它添加阶段作为上下文,这意味着您可以在 cronjob 配置中使用 condition 键。
# /etc/cronjobs/jobs.yaml - schedule: "0 0 * * *" command: "%php_bin% %release_path%/bin/console my:dev:command" condition: "context.stage === 'dev'"
上述 cronjob 仅在部署阶段等于 dev 时添加到最终的 cron 文件中。
可用的额外变量
此库还添加了更多您可以在 cronjob 配置中使用的变量
%application%:将输出应用程序名称%stage%:将输出阶段,例如dev、staging或prod%php_bin%:将输出 PHP 二进制文件的路径%release_path%:将输出服务器上的发布路径
使用这些变量,您可以定义一个 cronjob,如下所示
# /etc/cronjobs/jobs.yaml - schedule: "0 0 * * *" command: "%php_bin% %release_path%/bin/console my:command"
这将翻译成您 crontab 中的以下行
0 0 * * * /usr/bin/php /var/www/your_application/releases/23/bin/console my:command