mkijak / cronjob-commands-bundle
根据cron表达式运行(或不运行)注册的Symfony命令
v1.6
2024-09-24 14:01 UTC
Requires
- php: ^7.1|^8.0
- dragonmantank/cron-expression: ~2.1|~3.0
- symfony/console: ~4.0|~5.0|~6.0|~7.0
- symfony/framework-bundle: ~4.0|~5.0|~6.0|~7.0
- symfony/lock: ~4.0|~5.0|~6.0|~7.0
README
使用此扩展包,您可以管理使用Symfony应用程序yaml配置的cron作业。
它
- 提供了一种简单的方式来根据cron表达式运行命令
- 支持命令参数、选项和详细设置
- 打印运行命令的完整输出
- 使用 https://github.com/dragonmantank/cron-expression 解析cron表达式
安装
更新composer.json
composer require mkijak/cronjob-commands-bundle
在Symfony应用程序中启用此扩展包
# config/bundles.php Mkijak\CronJobCommandsBundle\CronJobCommandsBundle::class => ['all' => true],
配置
建议设置时区(默认时区为UTC,不考虑服务器设置)。
# config/packages/cron_job_commands.yaml cron_job_commands: timezone: UTC schedule: command1: name: app:command #command name registered in symfony enabled: true #default: true cron_expression: "* * * * *" #supports also predefined keywords e. g. "@daily", see https://github.com/dragonmantank/cron-expression arguments: argument1name: value argument2name: value options: option1name: value option2name: value multivalue_options: option1name: - value1 - value2 option2name: - value1 command2: name: app:another_command cron_expression: "@daily"
用法
每分钟运行一次"触发命令"。考虑使用静默模式以减少输出。
对于cron:添加到crontab(crontab -e
)
* * * * * /path/to/symfony/bin/console cron_commands:trigger -q
在静默模式下,您仍然可以通过将可见级别设置为writeln函数的第二个参数(或write函数的第三个参数)来显示一些命令消息
use Symfony\Component\Console\Output\OutputInterface; /** @var OutputInterface $output */ $output->writeln('<error>Message</error>', OutputInterface::VERBOSITY_QUIET)
要求
- PHP 7.1或更高版本
- Symfony 4.0或更高版本
许可
Symfony命令作为cron作业受MIT许可协议许可。