在python中有两个或多个工作队列

2024-06-17 08:00:25 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我有两个主要的工作进程,一个用来获取URL的内容,另一个用来获取URL的内容 将每个锚链接插入postgre表中。现在我在跑步 第一个进程的12个实例,所有这些实例都从一个URL队列获取它们的URL,然后将锚点放在第二个队列中,但是如何让另一组线程尝试将锚点推送到表中呢?当我启动线程时,发现它们的队列是空的,它们会死,如果我禁用这个特性,它们在工作完成时不会死,我该如何管理这一点,顺便问一下,使用进程而不是线程是否更好,因为可能涉及到密集的IO交互?


Tags: 实例iourl内容队列进程链接特性
1条回答
网友
1楼 · 发布于 2024-06-17 08:00:25

您需要两个队列URLFetchers将从一个队列弹出url并将其推送到另一个队列中,然后{}应该从第二个队列中弹出来处理数据。这个组织应该为你的问题提供一个很好的同步机制。在

编辑:避免工人退出

你需要阻止直到有一个元素可用。在

while True:
   element = queue.get(block=True, timeout=None)
   #do worker's task

从python的queue.getdoc。。。在

If optional args block is true and timeout is None (the default), block if necessary until an item is available.

相关问题 更多 >