supervisor如何启动一个应用的多个实例

supervisor是一款非常优秀的进程管理,程序启动、停止,重启都是非常方便,这些都是简单的管理,那supervisor如何启动一个应用的多个实例呢?在特定场景,如可以启动多个消费者去消费产品,能启动多个实例是非常提升效率的。

参考完整配置方式:

$ export CAT_NUMPROCS=3
[supervisord]
logfile = /tmp/supervisord.log

[program:cat]
command = /bin/cat
process_name = %(program_name)s_%(process_num)s
numprocs=%(ENV_CAT_NUMPROCS)s

链接:
https://github.com/Supervisor/supervisor/issues/750

最终因为conf文件不支持ENV_CAT_NUMPROCS,无法做到灵活的个数配置,改成一下配置:

[program:xxx-api-queue-multi]
command=/usr/bin/php7.2 /data/wxx.php test
process_name = %(program_name)s_%(process_num)s
autostart=true
autorestart=true
startretries=3
redirect_stderr=true
stdout_logfile_maxbytes=50MB
stdout_logfile_backups=10
stdout_logfile=/data/logs/app/axx-%(process_num)s-queue.log
numprocs=10
user=work

启动一个应用的多个实例在要启动多个进程的场景下非常有用,小技巧高效率。

kafkacat调试
如何防止PHP中进行SQL注入?
ajax-loader