前言

unbutun和centos均为linux系统,官方为我们提供了Homestead可以很好的模拟在服务器中的开发和运行。之前写了一篇基于Homestead(unbutun)关于Supervisor守护进程的文章:

laravel队列之Supervisor守护进程(unbutun篇)

那么在正式环境中,如何使用呢?(在此建议使用docker,谁用谁知道)

附:

开始

一、安装

1.执行安装EPEL源(详情可以查看参考文章:EPEL源-是什么全称):

#安装EPEL源,详情可以查看参考文章

yum install epel-release

选择y或者d(yes和default)

2.安装supervisor

yum install -y supervisor

3.开机自启动

systemctl enable supervisord

4.启动supervisord服务

systemctl start supervisord

5.查看supervisord服务状态

systemctl status supervisord

配置

centos和unbutun的配置有差异。

在homestead的unbutun中,Supervisor 配置文件通常存储在 /etc/supervisor/conf.d目录(默认有这supervisor目录)。在此目录中,你可以创建任意数量的配置文件,这些配置文件将指示 supervisor 如何监视你的进程。supervisor.conf是存放于supervisor目录下,和conf.d同级;conf.d一般是存放自定义队列进程配置文件。

而在centos中,没有conf.d文件夹,只有supervisor.conf和supervisor.d目录:

/etc/supervisor/conf.d/supervisor.conf(unbutun)和/etc/supervisor/supervisor.conf(centos)两者差异:

一个是加载.conf文件,一个是.ini文件,注意区别。当然,如果你把配置文件放置在自定义位置,请记得修改supervisor.conf的路径。

配置文件:

[program:laravel-worker]

process_name=%(program_name)s_%(process_num)02d

#指令 /home/vagrant/code/test请替换成自己项目路径

command=php /home/vagrant/code/test/artisan queue:work redis --sleep=3 --tries=3

autostart=true

autorestart=true

#用户名

user=root

numprocs=8

redirect_stderr=true

#运行日志

stdout_logfile=/home/forge/app.com/worker.log

stopwaitsecs=3600

注意

这里可能会有一个坑

在队列文件worker.log和laravel.log中会有报错信息,不处理的话会一直写入:

pcntl_signal() has been disabled for security reasons

at xxx/vendor/laravel/framework/src/Illuminate/Queue/Worker.php:643

pcntl_alarm()has been disabled for security reasons

at xxx/vendor/laravel/framework/src/Illuminate/Queue/Worker.php:643

pcntl_alarm — 为进程设置一个alarm闹钟信号。

这是因为在centos的php中,这两个函数是默认禁用的,如果使用宝塔面板,可以在php→设置→禁用函数中找到这两个函数,删除即可;

或者可以在php.ini中找到disable_functions,找到两者,删除即可,两种方法效果一样。

使用

用上一篇文章的代码:

控制器:

use App\Jobs\FlowQueue;

$user = [

'uid'=>1,

'name'=>'李大',

'phone'=>'1399999999',

'score'=>[

'chinese'=>(double)1100,

'math'=>(double)1000,

'english'=>(double)900,

],

'type'=>2

];

FlowQueue::dispatch($user);

队列:

class FlowQueue implements ShouldQueue

{

use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;

protected $accessLogs;

/**

* Create a new job instance.

*

* @param AccessLog $accessLogs

*/

public function __construct($accessLogs)

{

//

$this->accessLogs = $accessLogs;

}

/**

* Execute the job.

*

* @return void

*/

public function handle()

{

//

$logs = $this->accessLogs;

AccessLog::create($logs);

}

}

执行结果:

队列日志:

至此,centos篇的Supervisor守护进程完成。

本作品采用《CC 协议》,转载必须注明作者和本文链接

supervisor 守护php,laravel队列之Supervisor守护进程(centos篇)相关推荐

  1. 使用Supervisor来管理你的Laravel队列

    使用Supervisor来管理你的Laravel队列 Laravel官网教程中,并没有提到用它来写CLI应用,即守护进程或者可执行脚本.但是它却提供了更加便捷的队列(Queue)功能. 简明思路:其实 ...

  2. 使用supervisor管理laravel队列 - 配置文件supervisord.conf

    相关文章 上一篇:使用supervisor管理laravel队列 ,此篇重点性描述了我本地配置supervisor的全部过程:但是并未介绍为啥这么配置,这里,我就来记录一下配置supervisor的各 ...

  3. Php laravel 队列,Laravel 的队列系统介绍

    这篇文章主要介绍的内容是关于Laravel 的队列系统介绍,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 Laravel 队列为不同的后台队列服务提供统一的 API , 例如 Bean ...

  4. laravel 队列queue

    队列 Laravel队列服务为各种不同的后台队列提供统一的API 允许推迟耗时任务(例如发送邮件)的执行,从而大幅提高web请求速度 配置文件 Config/queue.php 支持模式 Suppor ...

  5. Laravel 队列:如何查看队列报错信息

    Laravel 队列在执行时,如黑盒一样,出错时我们该如何调试呢? 方法一.sync 驱动 如果你在开发环境,修改 .env: QUEUE_DRIVER=sync 这样就可以直接通过 Web 请求触发 ...

  6. php加入队列失败,Laravel队列使用中踩的坑,不报错但是队列一直再重试

    使用方案 使用的Laravel框架提供的队列服务,使用artisan命令来监听队列 使用的是事件队列,定义的Event和Listener如下: TestEvent为触发的事件类, TestListen ...

  7. 使用NSSM守护GeoServer、NetCore、Nginx的进程

    前言:由于目前Asp.Net Core服务.GeoServer.Nginx的启动都要依赖人工的去点每一个bat文件,所以每次云服务器重启都要去手动启动这几个程序,非常的麻烦,所以我们就想用NSSM来守 ...

  8. 阴阳师守护契约活动该怎么玩 守护契约活动玩法攻略

    阴阳师最新推出的守护契约活动,目前正在进行中,但有些玩家不知道这个活动到底该如何完成,具体玩法也没弄明白,那么,阴阳师守护契约活动该怎么玩?下面来看看守护契约活动玩法攻略 阴阳师守护契约活动该怎么玩 ...

  9. linux消息通信无法接收,进程间通信:消息队列有关问题:进程1接收不到进程2的消息...

    进程间通信:消息队列有关问题:进程1接收不到进程2的消息 进程间通信:消息队列有关问题:进程1接收不到进程2的消息 日期:2014-05-16 浏览次数:20365 次 进程间通信:消息队列问题:进程 ...

最新文章

  1. 010-ThreadGroup线程组
  2. 【机器学习】6大监督学习模型:毒蘑菇分类
  3. 深入理解javascript原型和闭包(2)——函数和对象的关系
  4. ROS中使用Eigen库[不定期更新]
  5. VS 2019 要来了,是时候了解一下 C# 8.0 新功能
  6. 文字阴影-CSS Text-Shadow
  7. python的字符编码叙述_Python: 熟悉又陌生的字符编码
  8. Linux lsof命令使用详细
  9. 初次使用CocoaPods遇到的问题总结
  10. 交叉熵反向求导计算过程
  11. 最简单的C语言无限弹窗
  12. 【传统编码技术对比】汉明码,RS,卷积码三种编码技术的对比
  13. 【服务通知】微信小程序服务通知
  14. 彻底解决idea maven依赖报红报错问题
  15. ins无法发帖_instagram发完图片就没了_ins发不了照片_解决方法
  16. 北京遇上西雅图之不二情书
  17. 电脑重启后 虚拟机不见了?
  18. java四则运算思路_java四则运算
  19. linux文件中的^M
  20. csharp高级练习题:ASCII85编解码【难度:3级】--景越C#经典编程题库,不同难度C#练习题,适合自学C#的新手进阶训练

热门文章

  1. 技术一般,却被破格提拔!肯定有黑幕......
  2. 5000字、12 连环炮、一张图快速搞定线程池
  3. 一次 Java 内存泄漏的排查
  4. 再见,Kafka!再见,RocketMQ!
  5. Redis 的 8 大数据类型,写得非常好!
  6. 卧槽,又一个Java面试神器!!!
  7. 光大银行分布式实战:国内最大缴费平台的数据库架构转型
  8. Java是如何实现自己的SPI机制的? JDK源码(一)
  9. 漫画:小白为了面试如何刷题?(呕心沥血算法指导篇)
  10. 这次是真的!波士顿动力Atlas机器人又进化了,自主导航get新技能