hexalgo-labs / cron-style-scheduler-bundle
使用cron表达式注解来管理您的自动化命令执行。与Symfony 4和5兼容。
v1.0.1
2022-07-13 11:33 UTC
Requires
- php: ^7.1|^8.1
- cocur/background-process: ^0.7.0
- doctrine/annotations: ^1.13
- dragonmantank/cron-expression: ^3.1
- symfony/console: ^3.4|^4|^5
- symfony/dependency-injection: ^3.4|^4|^5
- symfony/framework-bundle: ^3.4|^4|^5
- symfony/property-access: ^3.4|^4|^5
This package is auto-updated.
Last update: 2024-09-13 16:48:46 UTC
README
此包允许您通过注解直接在Symfony命令中管理自动化命令的执行。
安装包
要安装此包,您需要做两件事
- 使用composer在项目中添加依赖
- 在crontab中添加一个条目,每分钟启动主命令
安装依赖
您可以通过以下composer命令安装包
composer require hexalgo-labs/cron-style-scheduler-bundle
添加crontab条目
在crontab中添加以下行
* * * * * php /path/to/your/project/bin/console cron:run >> /dev/null 2>&1
此命令将每分钟执行一次,并检查是否有即将执行的命令并启动它
如何使用
在您的Symfony命令中,在类上添加CronCommand注解和cron表达式。
例如
use Symfony\Component\Console\Input\InputInterface; use Symfony\Component\Console\Output\OutputInterface; use Hexalgo\CronStyleSchedulerBundle\Annotation\CronCommand; /** * @CronCommand("30 * * * *") */ class MyTestCommand extends Command { public static $defaultName = 'app:test-command'; protected function execute(InputInterface $input, OutputInterface $output) : int { return 1; } }
此命令将每30分钟执行一次。
要帮助您创建cron表达式,您可以使用 https://crontab.guru。
Windows用户注意
当在Windows上使用此包时,启动cron:run命令时,命令不会在后台执行。命令将等待所有启动的命令完全执行后才结束。
Hexalgo
我们是法国一家专注于业务Symfony应用程序的机构。
待办事项
- 添加命令日志
- 命令完成后发送电子邮件/通知(成功或失败)
- 编写测试