; ============================================================ ; 企油通对接 · Supervisor 守护进程配置 ; ------------------------------------------------------------ ; 四个常驻进程,缺一不可: ; partners:queue 下单 -> 企油通 7.7 运单油费下发(含丢单兜底巡检 reconcile) ; qyt:status 轮询 7.8 运单发放结果,确定订单最终发放态并回调下游 ; (7.7 是异步接口,受理成功不等于发放成功,缺了这个进程 ; 订单会永远停在「发放中」,下游拿不到结果) ; callback:queue 企油通 7.10 加油消费回调入队后的落库与状态更新 ; notify:queue 我方 -> 下单平台 结果回调(含 60s/5min/30min 退避重试) ; ; 【使用前必改】 ; 1) command 里的 PHP 路径:宝塔用 `ls /www/server/php/` 看版本, ; 如 PHP 7.4 -> /www/server/php/74/bin/php ; 2) directory:站点根目录(think 文件所在目录,不是 public) ; 3) user:宝塔站点默认运行用户一般是 www ; 4) stdout_logfile 目录需先存在:mkdir -p /www/wwwlogs/supervisor ; ; 【进程数说明】 ; partners:queue 可多进程(同一订单由 RedisLock 串行,安全) ; qyt:status 可多进程(同上)。7.8 是「一单一次 HTTP 调用」,单进程串行时 ; 在途单一多,一轮扫描就要几十秒,退避间隔会被拖长、分油变慢, ; 所以默认给 3 个进程。在途量更大时继续加。 ; callback:queue / notify:queue 建议保持单进程 ; ; 【改完必须重启】 ; /www/server/panel/pyenv/bin/supervisorctl update ; /www/server/panel/pyenv/bin/supervisorctl restart all ; ============================================================ [program:qyt-partners-queue] command=/www/server/php/74/bin/php think partners:queue directory=/www/wwwroot/oil user=www numprocs=2 process_name=%(program_name)s_%(process_num)02d autostart=true autorestart=true startsecs=3 startretries=99 stopwaitsecs=10 redirect_stderr=true stdout_logfile=/www/wwwlogs/supervisor/qyt-partners-queue-%(process_num)02d.log stdout_logfile_maxbytes=50MB stdout_logfile_backups=5 [program:qyt-status-queue] command=/www/server/php/74/bin/php think qyt:status directory=/www/wwwroot/oil user=www numprocs=3 process_name=%(program_name)s_%(process_num)02d autostart=true autorestart=true startsecs=3 startretries=99 stopwaitsecs=10 redirect_stderr=true stdout_logfile=/www/wwwlogs/supervisor/qyt-status-queue-%(process_num)02d.log stdout_logfile_maxbytes=50MB stdout_logfile_backups=5 [program:qyt-callback-queue] command=/www/server/php/74/bin/php think callback:queue directory=/www/wwwroot/oil user=www numprocs=1 process_name=%(program_name)s_%(process_num)02d autostart=true autorestart=true startsecs=3 startretries=99 stopwaitsecs=10 redirect_stderr=true stdout_logfile=/www/wwwlogs/supervisor/qyt-callback-queue.log stdout_logfile_maxbytes=50MB stdout_logfile_backups=5 [program:qyt-notify-queue] command=/www/server/php/74/bin/php think notify:queue directory=/www/wwwroot/oil user=www numprocs=1 process_name=%(program_name)s_%(process_num)02d autostart=true autorestart=true startsecs=3 startretries=99 stopwaitsecs=10 redirect_stderr=true stdout_logfile=/www/wwwlogs/supervisor/qyt-notify-queue.log stdout_logfile_maxbytes=50MB stdout_logfile_backups=5