supervisor 守护php,laravel队列之Supervisor守护进程(centos篇)
前言
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篇)相关推荐
- 使用Supervisor来管理你的Laravel队列
使用Supervisor来管理你的Laravel队列 Laravel官网教程中,并没有提到用它来写CLI应用,即守护进程或者可执行脚本.但是它却提供了更加便捷的队列(Queue)功能. 简明思路:其实 ...
- 使用supervisor管理laravel队列 - 配置文件supervisord.conf
相关文章 上一篇:使用supervisor管理laravel队列 ,此篇重点性描述了我本地配置supervisor的全部过程:但是并未介绍为啥这么配置,这里,我就来记录一下配置supervisor的各 ...
- Php laravel 队列,Laravel 的队列系统介绍
这篇文章主要介绍的内容是关于Laravel 的队列系统介绍,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 Laravel 队列为不同的后台队列服务提供统一的 API , 例如 Bean ...
- laravel 队列queue
队列 Laravel队列服务为各种不同的后台队列提供统一的API 允许推迟耗时任务(例如发送邮件)的执行,从而大幅提高web请求速度 配置文件 Config/queue.php 支持模式 Suppor ...
- Laravel 队列:如何查看队列报错信息
Laravel 队列在执行时,如黑盒一样,出错时我们该如何调试呢? 方法一.sync 驱动 如果你在开发环境,修改 .env: QUEUE_DRIVER=sync 这样就可以直接通过 Web 请求触发 ...
- php加入队列失败,Laravel队列使用中踩的坑,不报错但是队列一直再重试
使用方案 使用的Laravel框架提供的队列服务,使用artisan命令来监听队列 使用的是事件队列,定义的Event和Listener如下: TestEvent为触发的事件类, TestListen ...
- 使用NSSM守护GeoServer、NetCore、Nginx的进程
前言:由于目前Asp.Net Core服务.GeoServer.Nginx的启动都要依赖人工的去点每一个bat文件,所以每次云服务器重启都要去手动启动这几个程序,非常的麻烦,所以我们就想用NSSM来守 ...
- 阴阳师守护契约活动该怎么玩 守护契约活动玩法攻略
阴阳师最新推出的守护契约活动,目前正在进行中,但有些玩家不知道这个活动到底该如何完成,具体玩法也没弄明白,那么,阴阳师守护契约活动该怎么玩?下面来看看守护契约活动玩法攻略 阴阳师守护契约活动该怎么玩 ...
- linux消息通信无法接收,进程间通信:消息队列有关问题:进程1接收不到进程2的消息...
进程间通信:消息队列有关问题:进程1接收不到进程2的消息 进程间通信:消息队列有关问题:进程1接收不到进程2的消息 日期:2014-05-16 浏览次数:20365 次 进程间通信:消息队列问题:进程 ...
最新文章
- 010-ThreadGroup线程组
- 【机器学习】6大监督学习模型:毒蘑菇分类
- 深入理解javascript原型和闭包(2)——函数和对象的关系
- ROS中使用Eigen库[不定期更新]
- VS 2019 要来了,是时候了解一下 C# 8.0 新功能
- 文字阴影-CSS Text-Shadow
- python的字符编码叙述_Python: 熟悉又陌生的字符编码
- Linux lsof命令使用详细
- 初次使用CocoaPods遇到的问题总结
- 交叉熵反向求导计算过程
- 最简单的C语言无限弹窗
- 【传统编码技术对比】汉明码,RS,卷积码三种编码技术的对比
- 【服务通知】微信小程序服务通知
- 彻底解决idea maven依赖报红报错问题
- ins无法发帖_instagram发完图片就没了_ins发不了照片_解决方法
- 北京遇上西雅图之不二情书
- 电脑重启后 虚拟机不见了?
- java四则运算思路_java四则运算
- linux文件中的^M
- csharp高级练习题:ASCII85编解码【难度:3级】--景越C#经典编程题库,不同难度C#练习题,适合自学C#的新手进阶训练