yii2 扩展 yiisoft/yii2-queue rabbitmq 无法处理队列信息 [ 2.0 版本 ]
config
<?php
'bootstrap' => [
'queue', 'amqp'
],
'components' => [
'queue' => [
'class' => \yii\queue\redis\Queue::class,
'redis' => 'redis_job',
'as log' => \yii\queue\LogBehavior::class,
],
'amqp' => [
'class' => \yii\queue\amqp_interop\Queue::class,
'host' => 'localhost',
'port' => 5672,
'user' => 'guest',
'password' => 'guest',
'queueName' => 'queue',
'driver' => yii\queue\amqp_interop\Queue::ENQUEUE_AMQP_LIB,
'as log' => \yii\queue\LogBehavior::class,
],
],
入队代码
<?php
$id = Yii::$app->amqp->push(new RabbitMQJob([
'userID' => 3,
'status' => 10,
]));
可以获取到任务ID
出队代码
<?php
namespace console\jobs;
use Yii;
use yii\base\BaseObject;
use yii\queue\RetryableJobInterface;
use common\models\admin\User;
class RabbitMQJob extends BaseObject implements RetryableJobInterface
{
public $queue;
public $userID;
public $status;
public function execute($queue)
{
Yii::warning($this->status);
$user = User::findOne($this->userID);
$user->status = $this->status ? User::STATUS_ACTIVE : User::STATUS_DELETED;
$user->save();
}
public function getTtr()
{
return 60;
}
public function canRetry($attempt, $error)
{
return $attempt < 3;
}
}
没有生效execute方法
redis完全可以使用
共 0 个回答
没有找到数据。
計斐同學
注册时间:2015-12-21
最后登录:2019-06-21
在线时长:4小时46分
最后登录:2019-06-21
在线时长:4小时46分
- 粉丝2
- 金钱155
- 威望0
- 积分195