我有一个列表:
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个条目,一旦完成,它将从队列中获取下一批