为何用 supervisor 监控队列,启动后几天就会自动消失,需要注意什么

我按教程里面用supervisor监控队列,在测试的时候队列也是正常的,但是过了几天测试的时候发现队列没了,我去服务器查看队列的情况,supervisor进程直接没了,我很纳闷,不知道发生了什么事,产品没上线,所以启动后几天内队列的任务极少,我查看过日志,日志里面没有什么错误信息,这才是令我最郁闷的,什么错误也没有,supervisor进程就这样消失了,队列也没发生失败的事件,队列失败的话是会发送邮件给我的,我重新启动supervisor进程,监督了几天发现还是这种情况。我现在还没什么头绪,不知道该怎么解决这件事,百度之后有人说不要用supervisor,我个人觉得supervisor很好用,不太想放弃这个东西

《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 12

从来没碰到过此问题。用这个很久了。是不是机器内存不足导致的~

7年前 评论

@Will 不太可能,服务器内存是8G,有60%的剩余,所以应该不是内存导致的,昨天想了想不知道是不是不同用户导致的,我使用队列的是lumen,跟laravel一样运行在www这个用户,www用户无法登陆,我是在root用户启动supervisor,不知道是不是因为不同用户导致这种情况的

7年前 评论
hareluya

是守护进程没有了,还是任务进程没有了?

7年前 评论
lijinma

两个问题:

  1. 看看 supervisor 的日志,如果异常退出,不会没有日志,可以查看文档:http://supervisord.org/logging.html ,如果真没有日志,想办法解决这个问题,这是你的问题的关键。
  2. 队列失败的话是会发送邮件,这个必须在队列被消耗,就是任务被执行的时候,出错才会发邮件,而你的情况是 supervisor 这个父进程已经退出来了,所以队列没有被消耗,是不会有出错邮件的。
7年前 评论

@hareluya
@lijinma

是出现unix:///tmp/supervisor.sock no such file 整个supervisor进程都没了

7年前 评论
lijinma

@裸奔的代码 那就好解决了。。

7年前 评论

@lijinma :disappointed_relieved:是挺好解决的,直接重新启动

7年前 评论
lijinma

@裸奔的代码 ..... 明显你要解决的是 unix:///tmp/supervisor.sock no such file 这个问题啊。。重新启动以后不会再遇见吗。。

7年前 评论

@lijinma 重新启动supervisor就正常运行了,我再等几天看看吧,就让他空着运行几天,如果还消失了,那就有点问题了

7年前 评论
TimJuly

如果没记错,/tmp目录应该是10天清一次,所以不要启在/tmp目录里.

7年前 评论

@裸奔的代码 过了这么久不知道你解决了没,我前段时间也遇到相同的问题,进程运行一段时间莫名挂掉,后来查看文档
startsecs

The total number of seconds which the program needs to stay running after a startup to consider the start successful (moving the process from the STARTING state to the RUNNING state). Set to 0 to indicate that the program needn’t stay running for any particular amount of time.

startsecs=0后没再出现此问题

6年前 评论

@liujianmin 啊,原来是这样,后面我直接不用队列了,最近我又用起这个supervisor,我尝试一下看看,谢谢

6年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!