现象:
项目在本地测一点问题都没有,部署到生产环境后,celery定时任务各种神奇的问题
celery里面感觉代码都在跳着运行
打印的log完全没在log文件里体现
两个人调试到了半夜都毫无头绪。感觉见鬼。
后来猛然醒悟。原来本机的celery worker,beat还起着,而且因为要migrate数据到生产环境,本地暂时也连的生产数据库。
立马关了,就正常了。
教训:
celery 一套环境(数据库,broker)只能同时跑一个celery(worker,beat)
多人开发celery任务,多人环境一定要隔离。
个人还是别连生产了,连接生产一定要建立起一套严格的制度。连接生产的时候,最好有人监督执行。或者专人专机连接生产。