一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - PHP教程 - Yii2 queue的隊列使用詳解

Yii2 queue的隊列使用詳解

2021-08-09 16:13WebMonster PHP教程

這篇文章主要介紹了Yii2 queue的隊列使用詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

少廢話主要看文檔

官方文檔

yii2-queue 的使用

1.安裝

?
1
composer require --prefer-dist yiisoft/yii2-queue

2.配置,在 common/config/main.php 中配置

redis作為驅(qū)動

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
return [
  'bootstrap' => [
    'queue', // 把這個組件注冊到控制臺
  ],
  'components' => [
    'redis' => [
      'class' => \yii\redis\Connection::class,
      // ...
    ],
    'queue' => [
      'class' => \yii\queue\redis\Queue::class,
      'as log' => \yii\queue\LogBehavior::class,//錯誤日志 默認為 console/runtime/logs/app.log
      'redis' => 'redis', // 連接組件或它的配置
      'channel' => 'queue', // Queue channel key
    ],
  ],
];

File 作為驅(qū)動

?
1
2
3
4
5
6
7
8
9
10
11
12
return [
  'bootstrap' => [
    'queue', // 把這個組件注冊到控制臺
  ],
  'components' => [
    'queue' => [
      'class' => \yii\queue\file\Queue::class,
      'as log' => \yii\queue\LogBehavior::class,//錯誤日志 默認為 console/runtime/logs/app.log
      'path' => '@runtime/queue',
    ],
  ],
];

3.新建 frontend/components/DownloadJob

?
1
2
3
4
5
6
7
8
9
10
class DownloadJob extends BaseObject implements \yii\queue\JobInterface
{
  public $url;
  public $file;
  
  public function execute($queue)
  {
    file_put_contents($this->file, file_get_contents($this->url));
  }
}

4.控制臺

控制臺用于監(jiān)聽和處理隊列任務。

cmd 下 監(jiān)聽隊列

?
1
yii queue/listen

5.添加到隊列

將任務添加到隊列:

?
1
2
3
4
Yii::$app->queue->push(new frontend\components\DownloadJob([
  'url' => 'http://example.com/image.jpg',
  'file' => '/tmp/image.jpg',
]));

將任務推送到隊列中延時5分鐘運行:

?
1
2
3
4
Yii::$app->queue->delay(5 * 60)->push(new frontend\components\DownloadJob([
  'url' => 'http://example.com/image.jpg',
  'file' => '/tmp/image.jpg',
]));

6.測試

執(zhí)行 5 中的程序,控制臺監(jiān)聽到,便會后臺自動 下載http://example.com/image.jpg到本地為/tmp/image.jpg

啟動worker

可以使用Supervisor或Systemd 來啟動多進程worker,也可以使用 Cron,我們這里主要說一下Supervisor

centos7 supervisor的使用

1.安裝supervisor

?
1
2
3
4
5
6
7
yum update
yum install epel-release
yum install -y supervisor
#開機啟動
systemctl enable supervisord
#啟動
systemctl start supervisord

2.supervisor 命令

?
1
2
3
supervisorctl status 查看進程狀態(tài)   
supervisorctl reload 重啟supervisord
supervisorctl start|stop|restart 啟動關閉重啟進程

3.添加配置文件

Supervisor 配置文件通常在 /etc/supervisord.d 目錄下. 你可以創(chuàng)建一些配置文件在這里.

注:文件名是.ini結(jié)尾

下面就是個例子:

?
1
2
3
4
5
6
7
8
9
[program:yii-queue-worker]
process_name=%(program_name)s_%(process_num)02d
command=/usr/bin/php /var/www/my_project/yii queue/listen --verbose=1 --color=0
autostart=true
autorestart=true
user=www-data
numprocs=4
redirect_stderr=true
stdout_logfile=/var/www/my_project/log/yii-queue-worker.log

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

原文鏈接:https://segmentfault.com/a/1190000019805030

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 91精品国产色综合久久不卡蜜 | 国产精品天天在线 | 免费欧美视频 | 别停好爽好深好大好舒服视频 | 久久爽狠狠添AV激情五月 | 国产首页精品 | 国产亚洲视频网站 | 91交换论坛| 91亚洲精品第一综合不卡播放 | 波多野结衣同性系列698 | 四虎在线永久免费视频网站 | 亚洲精品第五页中文字幕 | 乳女教师欲乱动漫无修版动画3d | 国产情侣视频观看 | 青草青青在线 | 男人天堂999 | 色综合色狠狠天天久久婷婷基地 | 蜜桃视频一区二区三区四区 | hd在线观看免费高清视频 | 调教催眠改造np总攻 | 美女班主任下面好爽好湿好紧 | 性做久久久久久久久老女人 | 亚洲精品AV无码永久无码 | 青草久久伊人 | 视频高清在线观看 | 美女黑人做受xxxxxⅹ | 粉嫩极品国产在线观看免费 | 欧美久在线观看在线观看 | tolove第一季动画在线看 | 狠狠色综合久久久久尤物 | 日本视频高清免费观看xxx | 大团圆免费阅读全文 | 秋霞宅宅236理论片 秋霞一级黄色片 | 四虎影视永久在线观看 | 高清一级做a爱免费视 | 欧美日韩一区二区三区在线观看 | 欧美丰满大乳大屁在线观看股 | 免费叼嘿视频 | 亚洲欧美综合人成野草 | 青青青在线观看国产精品 | 亚洲精品无码久久不卡 |