在宝塔面板使用消息队列的一下操作,提供参考

1.使用php7.1版本,在php管理中把“禁用函数”putenv 和proc_open 删除掉,然后在'安装扩展'里面安装redis扩展和fileinfo 扩展然后重启php7.1服务

2.在public目录下运行终端,执行composer require topthink/think-queue 1.1.6 ,版本不能过高

3.安装后在application/extra下将产生一个queue.php配置文件:

推荐使用redis驱动,参考配置如下:

return [//'connector' => 'Sync',

//redis

'connector'=>'redis',

'expire' => 0,

'default' => 'default',

'host' => '127.0.0.1',

'port' => 6379,

'password' => '',

'select' => 0,

'timeout' => 0,

'persistent' => false

//database

// 'connector' => 'database',

// 'expire' => 60,

// 'default' => 'default',

// 'table' => 'faqueue_jobs',

// 'dsn' => [

// 'type' => 'mysql',

// 'database' => '',

// 'hostname' => '',

// 'username' => '',

// 'password' => '',

// 'prefix' => '',

// ]

];

4.在public的上级目录(和application同一级)目录中运行终端,执行命令,执行后终端没有反应(正常现象),并且不能关闭终端

建议开发测试时使用

php think queue:listen

建议生产环境使用

php think queue:work --daemon(不加--daemon为执行单个任务)

5.这时可以进行测试了,在控制器中加入下面代码(注意,测试发送邮件功能需要在后台修改好邮件配置)

use addonsfaqueuelibraryQueueApi;

$a = QueueApi::sendEmail("测试队列",'690733717@qq.com','sssss');

print_r($a);//打印的是一个随机字符串

6.这个时候如果关闭终端,这个时候不会再执行这个发送邮件的功能(这个时候会存在redis缓存中,当重新执行的时候,会把缓存的所有数据统一执行,比如当关闭终端的时候又执行了2次发送邮件的代码,这个时候不会发送邮件,因为终端没有开启,需要开启终端,重新执行php think queue:listen,当重新开启终端的时候,这个时候会把缓存中的2条数据执行,然后发送缓存中的两条邮件)

7.在宝塔的软件商店里面安装supervisor管理器

添加守护进程,名称为英文,运行目录为/www/wwwroot/fastadmin.donghuiphp.com,参考自己的文件目录,和app同级,启动命令就是php think queue:listen,确定就好,这个时候就会在管理器中显示这个进程的状态,可以在日志查看中查看执行的状态

php listen命令,开启队列时,命令行输入php think queue:listen出现乱码相关推荐

  1. Linux中vi命令编辑文件时显示行号

    vi file_name 直接进去时没有行号显示的,这时可以进入末行模式(文件末尾出现冒号)时输入 : set nu 效果如图: 这种做法有个弊端,在退出编辑后,再次进入编辑时行号就不再显示了. 配置 ...

  2. linux开启防火墙的命令行,Linux关闭/开启防火墙命令

    Linux还是比较常用的,于是我研究了一下Linux关闭防火墙命令,在这里拿出来和大家分享一下,希望你能学会Linux关闭防火墙命令 . 1) 永久性生效,重启后不会复原 开启: chkconfig ...

  3. 安装需要的第三方库时,命令行输入pip提示不是内部或外部命令

    简介 在做Python开发时,安装需要的第三方库时,大多数人喜欢选择在命令行用pip进行安装. 然而有时敲入pip命令会提示'pip'不是内部或外部命令..如图: 解决办法 1.在python安装目录 ...

  4. 第一:Python安装需要的第三方库时,命令行输入pip提示不是内部或外部命令

    在做Python开发时,安装需要的第三方库时,大多数人喜欢选择在命令行用pip进行安装. 然而有时敲入pip命令会提示'pip'不是内部或外部命令..如图: 解决办法 1.在python安装目录中找得 ...

  5. 如何使linux终端还原,大师应对win10系统14316开启Linux Bash命令行的还原办法

    很多的朋友在尝试win10系统新功能的过程中遇到了各式各样的问题,下面小编就来谈谈win10系统14316开启Linux Bash命令行的问题.如果电脑菜鸟遇到win10系统14316开启Linux ...

  6. Win10系统开启Linux Bash命令行

    导读 在Build2016上微软为了拉拢开发者发了个大招,那就是Win10一周年更新集成原生Linux Bash命令行功能,这将允许开发者或用户在Windows10系统上以命令行形式运行Linux程序 ...

  7. cmd开无线服务器,使用cmd命令开启wifi

    还没到月结手机流量就用光了?想与朋友共享网络,一起上网冲浪?相信很多人都会选择在笔记本上创建wifi热点与人分享,但是在使用第三方软件创建wifi时,会经常出现掉线的情况.下面是学习啦小编跟大家分享的 ...

  8. linux getty命令 开启 初始化 设置 终端 简介

    目录 简介 当作为 getty 命令调用时 参数 安全性 文件 简介 功能说明:是Unix类操作系统启动时必须的三个步骤之一,用来开启终端,进行终端的初始化,设置终端. 语法:getty [-h][- ...

  9. linux三个命令模式切换,ubuntu16.04命令行模式和图形界面互相切换的两种解决办法,...

    ubuntu16.04命令行模式和图形界面互相切换的两种解决办法, 在ubuntu中,我们可以有两种工作模式,一种是纯字符的命令行模式,这种界面没有那么好操作,而且对命令要求比较熟悉,比较适合专业人士 ...

  10. Linux 运行vcs仿真命令,VCS使用以及命令行调试

    最近在学习VCS,现将VCS的一些使用心得记录下来. VCS是synopsys的仿真verilog的仿真器.基于linux系统.有命令行模式和图形化模式.图形化模式是用的dve. 以串口verilog ...

最新文章

  1. Linux15-SELinux
  2. [EffectiveC++]item17:以独立语句将newed对象置入智能指针
  3. linux内核打开prntk,操作系统实验一向Linux内核增加一个系统调用.docx
  4. ASP.NET Core 中间件之压缩、缓存
  5. [云炬创业管理笔记]第一章测试5
  6. 别看360完成私有化 仍有三因素阻碍中概股回归
  7. java 不存在就创建,java怎么实现判断文件是否存在,不存在就创建的方法
  8. Nuro发布自家自动驾驶安全报告,提出无人车12大安全要素 | 报告下载
  9. numpy—np.logspace
  10. 两个json对象合并为一个json对象
  11. 使用colab训练faster-rcnn
  12. ARINC 429总线学习资料?
  13. C语言理论小学案例试讲,C语言试讲演示文稿.ppt
  14. 从今往后,我也有了我自己的博客
  15. php 过滤字符 b,php过滤所有中英文标点符号
  16. iVMS-4200 Vs区别_45466足球推荐分析 法甲 21:00 安格斯 VS 梅斯
  17. 支付宝和微信支付合作伙伴RiverPay加速全球化战略布局
  18. 知识共享协议促进微积分的大发展
  19. 华为设备Voice VLAN配置命令
  20. 数据清洗的一般方法和步骤

热门文章

  1. yacc 简易计算机规则,YACC 使用说明——计算器实例.pdf
  2. 最火的C语言编程软件,适合编写C语言代码的编程软件有哪些
  3. 柯马机器人示教器编程_柯马机器人示教器C5G-TP5WC CR17910085全新原装进口现货销售...
  4. Linux Keepalived 高可用虚拟IP安装与配置
  5. java并发包aqu_Java并发包之SynchronousQueue
  6. CANoe+Carmaker联合仿真测试
  7. c语言编程 进制转换,c语言中的进制转换
  8. java me教程_Java ME基础教程
  9. 89c51交通灯汇编语言程序,汇编语言的交通灯程序
  10. java编程输入学生成绩 判断最高分_从键盘输入本次Java考试五位学生的成绩,求考试成绩最高分_学小易找答案...