celery十万级大任务处理

新手上路,请多包涵

我这边有一个十万级任务,只用一个worker, 并发设到30,用for扔到celery里面执行。但是很快就发现了问题,虽然只有30个在执行,但是处于等待状态的任务对资源的消耗也是巨大的,中途如果变卦想删除任务,一删就得删半个小时,各位有什么好的思路

阅读 3.2k
2 个回答

换种方式,用redis的队列。取一条处理一条。只开八个。

另外你开30个,是否考虑了,多线程并发gil问题?

你这种设计显然有问题啊,楼上采用消息队列的方法是一个可取的思路,如果采用redis做MQ,你的celery可以去MQ中消费注册的消息,这样你只需要增删MQ的消息即可

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题