hexalgo-labs/cron-style-scheduler-bundle

使用cron表达式注解来管理您的自动化命令执行。与Symfony 4和5兼容。

v1.0.1 2022-07-13 11:33 UTC

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应用程序的机构。

待办事项

  • 添加命令日志
  • 命令完成后发送电子邮件/通知(成功或失败)
  • 编写测试