首页 文章

我想在芹菜中使用多个 Worker 来遍历一个列表

提问于
浏览
0

我有一个清单:

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

我想使用100名芹菜 Worker 遍历这份清单,以减少完成工作所需的时间 .

我的问题是:我如何向 Worker 提供这个 url_list ,以便这100名芹菜 Worker 一次性地射击 url_list ,而没有击中名单上的那些已被其他 Worker 穿过的元素?

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

据我所知,我将在tasks.py文件中提及我的任务,并使用python shell中的 .delay 函数调用该任务 . celery.py将包含配置内容 .

有人可以帮我从这里出去吗?

1 回答

  • 0

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

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

    IMO这不是非常有效,可能会给你带来麻烦并产生错误,也许map / reduce方法会更容易,这意味着在调用任务之前你将每个工作者将获得的列表的哪个部分分开 .

    您不需要分开100个作业,可以将10个条目列表中的100k条目列表分开,这样每个工作人员一次处理10个条目,一旦完成它将从队列中获取下一个批处理

相关问题