20170720 Celery 异步任务处理到Sql Server 发生死锁

-- 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 个后,回收空间并重新创建,来保证内存不会溢出。  这些配置数量可以根据自己的实际情况进行调整,来满足个性化程式的需求

也许并不是你需要的内容,这只是我人生的一些痕迹. -- soar.pang
原文地址:https://www.cnblogs.com/Soar-Pang/p/7210032.html