在线考试系统维护异步守护进程

今日完成任务

  由于最近一直在参加大一通识的培训,所有进度有点缓慢。抽时间把laravel-redis的队列配置了一个守护进程。这样redis的消费队列进程就会一直在后台运行。

  

安装Supervisor

  Supervisor是Linux系统中常用的进程守护程序。如果队列进程queue:work意外关闭,它会自动重启启动队列进程。在Ubuntu安装Supervisor 非常简单:

  sudo apt-get install supervisor
 

     配置Supervisor

Supervisor配置文件通常存放在/etc/supervisor/conf.d目录,在该目录中,可以创建多个配置文件指示Supervisor如何监视进程,例如,让我们创建一个开启并监视queue:work进程的laravel-worker.conf文件:

[program:laravel-worker]
process_name=%(program_name)s_%(process_num)02d
command=php /您自己的项目根目录/artisan queue:work sqs --sleep=3 --tries=3
autostart=true
autorestart=true
user=root //用户 一般root就行
numprocs=8
redirect_stderr=true
stdout_logfile=日志信息存放文件 自己建一个路径写正确就可以了

在本例中,numprocs指令让Supervisor运行8个queue:work进程并监视它们,如果失败的话自动重启。配置文件创建好了之后,可以使用如下命令更新Supervisor配置并开启进程:

启动Supervisor

当你成功创建配置文件后,你需要刷新Supervisor 的配置信息:

sudo supervisorctl reread
sudo supervisorctl update

sudo supervisorctl start laravel-worker:*

这样下来,守护进程就配置完成了。其实这个地方还有多线程的概念在里面。思路还是蛮不错的。一些用PHP做接口的。消息队列这块很多公司还是比较喜欢使用redis的。

系统截图

遇到问题

配置后不起作用,一般是根据报错信息就可以解决

解决方案

都是大家遇到的错误,百度就可以解决。

明天继续加油。。。。

项目的燃尽图

原文地址:https://www.cnblogs.com/sofic/p/13455630.html