-- 1. 异常提示情况如下:
需要解决为什么引起死锁 -- 叹气
原因: 在使用Celery 启用了
配置参数
CELERYD_CONCURRENCY = 10 表示开了10块线程池。
有好处,可以快速并行的开启10 个Work ,相互不干扰的同时进行程式。
但是对于以上我的程式是更新SQL server数据库表数据,那么如果同时有两个worker update一张表,就会出现死锁。
所以,从提示看是Sql server报错,实际是在配置Celery处理机制时,没有控制好处理方式。
所以此处改为 CELERYD_CONCURRENCY = 1 即可解决问题
当然还可以配置任务数
CELERYD_MAX_TASKS_PER_CHILD = 100
当worker执行任务到100 个后,回收空间并重新创建,来保证内存不会溢出。 这些配置数量可以根据自己的实际情况进行调整,来满足个性化程式的需求