shop25/deployer-cron

使用 Setono cron builder 在部署过程中生成 cron 文件

v0.3.1 2021-05-13 03:35 UTC

README

Latest Version Latest Unstable Version Software License Build Status

使用 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%:将输出阶段,例如 devstagingprod
  • %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