This topic created in 2250 days ago, the information mentioned may be changed or developed.
我用 supervisor 控制 celery 和 uwsgi 的开机启动.
但是每次启动时 uwsig 和 celery 都会报错 MySQLdb._exceptions.OperationalError: (2002, "Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)").
这是因为 mysqld 在开机时还没有启动,但是我将 mysql 也用 supervisor 启动,并设置了优先级还是同样的问题.
请问大家遇到这种问题吗?如何解决的?
25 replies • 2020-04-22 21:06:39 +08:00
 |
|
1
ClericPy Apr 22, 2020
好久不用 supervisor 了, 现在用着 systemd 直接一个 After=XXX 就做到串行启动了
如果非要 supervisor, 以前我是写了个 while 循环不断 sleep 检查是否可连接, 后来受不了才改 systemd 的... 随手搜了下说用 Event 什么的, 以前没试过不确定怎么样
|
 |
|
5
Vegetable Apr 22, 2020
我感觉 supervisor 应该也有 depend 这种配置,但是接触的太少不了解。 我也建议直接采用 systemd
|
 |
|
6
sonice Apr 22, 2020
启动不是有优先级吗?
``` The relative priority of the program in the start and shutdown ordering. Lower priorities indicate programs that start first and shut down last at startup and when aggregate commands are used in various clients (e.g. “start all”/”stop all”). Higher priorities indicate programs that start last and shut down first.
```
|
 |
|
9
awanabe Apr 22, 2020
uwsgi 和 celery 启动的时候去掉依赖 mysql...
|
 |
|
10
xpresslink Apr 22, 2020
mysql 服务起动过程相对较慢 可以弄个 sh 脚本来起动 uwsgi 和 celery 启动,脚本前面先 sleep 30 秒 把这个脚本加到 rc.local
|
 |
|
11
keakon Apr 22, 2020
把 supervisor 改成在 mysql 后启动
|
 |
|
12
deljuven Apr 22, 2020
单机编排软件 docker-compose 欢迎你……
|
 |
|
14
AllenBigBear Apr 22, 2020
performance_schema=ON 这个开了,把这个关了就好
|
 |
|
16
wangyzj Apr 22, 2020
docker-compose
|
 |
|
17
superrichman Apr 22, 2020 via iPhone
裸奔的话,supervisor 换成 pm2 管理。 用 docker 就写个 compose 文件。
|
 |
|
18
ieric Apr 22, 2020 via iPhone
celery 支持 uwsgi 吗?
|
 |
|
19
ieric Apr 22, 2020 via iPhone
celery 支持 uwsig 吗?
|
 |
|
20
love Apr 22, 2020 via Android
我以前也用这个,后来就换成 systemd 了,更简单更稳定
|
 |
|
21
Variazioni Apr 22, 2020
supervisor 顺序启动这块是个坑。。 只能设置优先级。但是 supervisor 不能检测你的程序有没有完全启动。。 所以并没有什么卵用。。 我现在的方案是用关闭配置文件里的自启动。用脚本启动。。supervisorctl start xxx 。然后各 x 秒,启动下一个。。
|
 |
|
22
vZexc0m Apr 22, 2020
可以把 supervisor 的 autostart=true 和 utorestart=true 打开,然后在 celery 和 uwsgi 启动时判断能否连接 MySQL,不能连接则抛出异常停止进程,然后 supervisor 会自动重启 celery 和 uwsgi 。
|
 |
|
24
Kobayashi Apr 22, 2020 via Android
supervisor 控制 MySQL 启动,这什么骚操作
|
 |
|
25
knightdf Apr 22, 2020
mysql 在 supervisor 之前启动不就好了?
|