如何在 yii 2 队列 AMQP 互操作 (rabbitmq) 中使用可重试作业



如何在 2 个队列AMQP Interop (rabbitmq)中使用yii retryable作业?

它在文档中。

您可以为应用程序配置"队列"组件

    'queue' => [
      'class' => yiiqueue<driver>Queue::class,
      'ttr' => 5 * 60, // Max time for job execution
      'attempts' => 3, // Max number of attempts
    ],

此外,您还可以覆盖特定作业模型的配置

class SomeJob extends BaseObject implements RetryableJobInterface {
  public function execute($queue) {
    //...
  }
  public function getTtr() {
    return 15 * 60;
  }
  public function canRetry($attempt, $error) {
    return ($attempt < 5) && ($error instanceof TemporaryException);
  }
}

要使用队列,您需要工作线程。

简单地说,你可以开始一个工人

./yii queue/listen

命令

最新更新