tarasovich/symfony-cron-commands

用于声明 symfony 命令为 cron 任务的工具

安装: 87

依赖者: 0

建议者: 0

安全: 0

星标: 0

关注者: 1

分支: 0

开放问题: 0

类型:symfony-bundle

v0.1.1-alpha 2022-07-08 10:58 UTC

This package is auto-updated.

Last update: 2024-09-08 16:09:23 UTC


README

将 symfony 命令声明为 cron 任务的工具(Linux cron 配置生成和命令锁监听器)

接口
  • CronCommandInterface - 通用 cron 命令,你需要声明 getCronInterval(): string
  • LockedCronCommandInterface - 在命令上启用锁监听器
  • LoggedCronCommandInterface - 在 Linux 配置生成时为命令启用输出重定向
  • LockedLoggedCronCommandInterface - 启用锁监听器和输出重定向

安装

确保全局已安装 Composer,如 Composer 文档中的 安装章节 所述。

步骤 1: 下载 Bundle

打开命令控制台,进入你的项目目录,并执行以下命令以下载此 Bundle 的最新稳定版本

$ composer require tarasovich/symfony-cron-commands

步骤 2: 启用 Bundle

然后,通过将其添加到项目 config/bundles.php 文件中注册的 Bundle 列表中来启用该 Bundle

// config/bundles.php

return [
    // ...
    Tarasovich\CronCommands\CronCommandsBundle::class => ['all' => true],
];

步骤 3: 配置 Bundle

然后通过创建 config/packages/cron_commands.yaml 来配置 Bundle

# config/packages/cron_commands.yaml

cron_commands:
  locks:
    enabled: true # Enable lock listener
    template: 'var/run/{command_dashes}.{env}.lock' # Lock file name template relative to project dir or absolute

  linux_config_generation:
    enabled: true # Enable linux config generation command
    templates:
      task: '{interval} {user} php {bin} --env={env} {command} {logging}' # Task template
      log_filename: '{command_dashes}.{env}.log' # Log file name template
    default_options: # Default command options
      bin: '%kernel.project_dir%/bin/console'
      logs: '%kernel.logs_dir%'
      output: '%kernel.project_dir%/var/tmp/self-serve-cron.conf'
      user: '{current_user}'