Yii2.0 queue
https://www.yiichina.com/tutorial/1635
https://my.oschina.net/gcdong/blog/3031113
https://www.yii-china.com/extend/detail/4
yii2-queue
安装
首先得安装,用的是composer,这个很简单,在你的项目目录下面
composer require --prefer-dist yiisoft/yii2-queue
##配置
找到你的项目配置文件,高级版是main.php,普通版console.php,在里面加上你的配置,这个yii2-queue可以使用各种驱动模式来做,我这里选取了redis,所以你得必须先有redis,如果没有可以用file来驱动
// 把这个组件注册到控制台
'bootstrap' => [
'queue',
],
'components' => [
'queue' => [
'class' => \yii\queue\redis\Queue::class,
// 连接组件或它的配置
'redis' => 'redis',
// Queue channel key
'channel' => 'queue',
],
'queue' => [
'class' => \yii\queue\file\Queue::class,
// 连接组件或它的配置
'as log' => \yii\queue\LogBehavior::class,
'path' => '@runtime/queue',
],
'redis' => [
'class' => 'yii\redis\Connection',
'hostname' => 'localhost',
'port' => 6379,
'database' => 0,
]
]
使用
首先我们得写一个队里文件,里面执行一个队里的任务,我这里简单的写了一个
<?php
namespace common\components;
use yii\base\BaseObject; class Job extends BaseObject implements \yii\queue\JobInterface
{
public $url;
public $file; public function execute($queue)
{
file_put_contents($this->file, file_get_contents($this->url));
}
}
上面是队列执行的文件,我们要使用它是这样使用的,一般在控制器里面使用
use common\components\Job;
public function actionJob(){
//添加任务到队列
Yii::$app->queue->push(new Job([
'url' => 'http://img.netpc.com.cn/2018/06/12080502tmd.jpg',
'file' => '/www/project/ideaboat\1.jpg',
]));
} // 延时5s触发
Yii::$app->queue->delay(5)->push(new Job([
'url' => 'http://img.netpc.com.cn/2018/06/12080502tmd.jpg',
'file' => '/www/project/ideaboat\1.jpg',
]));
最后你还得在命令行把这个队列的监听监听起来
./yii queue/listen
这样就可以了
Yii2.0 queue的更多相关文章
- Yii2.0 安装yii2-queue并在Linux启动守护进程监听消息
一.什么是yii2-queue? Yii2-queue是Yii2.0 PHP框架下一个消息队列拓展插件,支持基于DB, Redis, RabbitMQ, AMQP, Beanstalk 和 Gearm ...
- Yii2.0.7 限制user module登录遇到的问题
在Yii2.0.6的时候我是在以下文件通过以下方法实现的. frontend/modules/user/Module.php namespace frontend\modules\user; clas ...
- yii2.0归档安装方法
我前几天用composer安装 一直没成功 我就用归档的方法安装了 所以这篇文字只帮助那些用归档方法安装的朋友 Yii是一个高性能的,适用于开发WEB2.0应用的PHP框架. Yii自带了丰富的功 ...
- [moka同学笔记]三、Yii2.0课程笔记(魏曦老师教程)关联字段增加搜索
关联字段增加搜索 post表关联adminuser表,通过post.author_id adminuser.id关联,在YII2.0生成搜索,关联字段搜索时,需要输入关联字段author的id才能搜 ...
- Yii2.0高级框架数据库增删改查的一些操作(转)
yii2.0框架是PHP开发的一个比较高效率的框架,集合了作者的大量心血,下面通过用户为例给大家详解yii2.0高级框架数据库增删改查的一些操作 --------------------------- ...
- yii2.0框架安装心得
yii2.0安装心得 能够搜索到这篇文章的朋友相信是对yii框架有兴趣的,但是我不得不吐槽的是,这个安装过程确实让人头疼,接下来就让大家见证一下这个纠结的过程 根据官网的说法,安装这个框架需要用到co ...
- yii2.0高级框架配置时打开init.bat秒退的解决方法 (两种方法)
第一种: 这几天刚接触到yii2.0框架,在配置advanced版本时运行init.bat初始化文件时老是闪退: 用cmd运行该文件时显示:The OpenSSL PHP extension is r ...
- yii2.0 图片上传(摘录)
文章来源:http://blog.sina.com.cn/s/blog_88a65c1b0101izmn.html 下面小伙就带领大学学习一下 Yii2.0 的图片上传类的使用,还是老样子,如果代码样 ...
- yii2.0用户登录,退出判断(摘录)
文章来源:http://blog.sina.com.cn/s/blog_88a65c1b0101ix13.html 判断用户是否登录 在 Yii2.0 里面,判断用户是否已经登录,我们用下面的代码即可 ...
随机推荐
- Linux 网络通信命令之 netstat
定义 Linux netstat命令用于显示网络状态. 利用netstat指令可让你得知整个Linux系统的网络情况. 语法 netstat [-acCeFghilMnNoprstuvVwx][-A& ...
- Java中局部变量、实例变量和静态变量在方法区、栈内存、堆内存中的分配
转自:https://blog.csdn.net/leunging/article/details/80599282 感谢CSDN博主「leunging」的总结分享 ———————————————— ...
- python合并两个字典
1.借助dict(d1.items() + d2.items())的方法 2.借助字典的update()方法,没有返回值 3.借助字典的dict(d1, **d2)方法 4.d3={**d1,**d2 ...
- mysql与Oracle的区别:
1. Oracle是大型数据库而Mysql是中小型数据库,Oracle市场占有率达40%,Mysql只有20%左右,同时Mysql是开源的而Oracle价格非常高. 2. Oracle支持大并发,大 ...
- Java学习回顾总结
java-01初识Java见上一篇 Java-02 1.命名规范与规范: 标识符命名规则:首字母为字母|下划线|$ 其余部分数字|字母|下划线|$ 命名规范: 变量属性方法命名规范:第一个单词首字母小 ...
- SpringBoot整合guava缓存
1.pom文件 <dependency> <groupId>org.springframework.boot</groupId> <artifactId> ...
- SpringJunitTest
1.用MockBean和assert,而不是输出 import org.springframework.boot.test.mock.mockito.MockBean;MockBean import ...
- 黑马lavarel教程---9、缓存操作
黑马lavarel教程---9.缓存操作 一.总结 一句话总结: legend2项目中自己写的哪些文件操作都可以通过这里的缓存实现,简单方便 1.lavarel中如何使用后端主流的缓存如 Memcac ...
- Java 比较两个字符串的相似度算法(Levenshtein Distance)
转载自: https://blog.csdn.net/JavaReact/article/details/82144732 算法简介: Levenshtein Distance,又称编辑距离,指的是两 ...
- 【论文学习】Blind Super-resolution Image Reconstruction Based On Novel Blur Type Identification
机翻 <基于新型模糊类型识别的盲超分辨率图像重建>