yii2-queue
1.配置
安装yii2-queue
和yii2-redis
,yii2-queue支持很多驱动,这里使用的是redis。
//在文件中配置queue模块
bootstrap => ['queue'],
components => [
'queue' => [
'class' => yii\queue\[drive]\Queue::class,
'redis' => 'redis',
'channel' => 'redis',
'as log' => yii\queue\LogBehavior::class,
],
]
2.使用
a.创建job类
class MyJob extends BaseObject implements JobInterface //最主要要继承queue JobInterface
{
public $url;
public function execute($queue){
echo $this->url;
}
}
b.push到队列里
$id = Yii::$app->queue->push(new Myjob([
'url' => 'awgwagwg'
]));
c.队列的一些状态
Yii::$app->queue->isWaiting($id);
Yii::$app->queue->isReserved($id);
Yii::$app->queue->isDone($id);
d.消费队列,在console里处理
$ php yii queue/run
//获取并执行队列,直到队列为空。适用于
cron
$ php yii queue/listen [timeout] //timeout下次查询时间
//启动一个守护进程,它可以无限查询队列。可以使用supervisor来实现
supervisor 官方文档
supervisor 云雀