我想在芹菜中使用多个工作者遍历一个列表



我有一个列表:

 url_list=["abc.com","def.com","xyz.com"."pqr.com"...] - 100,000 entries

我想用100个芹菜工人遍历这个列表,以减少完成它所需的时间。

我的问题是:我如何向工人提供这个url_list,以便这100个芹菜工人立即在url_list上射击,而不会击中列表中已经被其他工人遍历的元素?

我已经创建了一个目录,proj-> celery.py, tasks.py

根据我的理解,我将在tasks.py文件中提到我的任务,并在python shell中使用.delay函数调用任务。celery.py将包含配置文件。 谁能帮我一下吗?

换句话说,您有100个进程接收相同的列表,它们需要共享状态(节点访问True/False)

您需要在进程之间以某种方式进行通信,这意味着任务需要与运行该任务的其他工作者共享对象。

在我看来,这不是很有效,可能会让你头疼并产生bug,也许map/reduce方法会更容易,这意味着在调用任务之前,你将每个工人将获得列表的哪个部分。

您不需要分隔100个作业,您可以将100k条目列表划分为10个条目列表,因此每个工人一次将处理10个条目,一旦完成,它将从队列中获取下一批

相关内容

  • 没有找到相关文章

最新更新