如何在 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
命令