gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 19:30:41 24 4
gpt4 key购买 nike

所以我有 2 个主要工作进程,一个负责获取 URL 的内容,另一个负责处理会将每个 anchor 链接插入到 postgre 表中。现在我正在运行第一个进程有 12 个实例,所有这些实例都从单个 URL 队列中获取 URL,然后将 anchor 放入第二个队列中,但是如何让另一组线程尝试将 anchor 插入表中?当我启动线程时,发现它们的队列为空并且它们死掉,如果我禁用该功能,它们在工作完成后不会死掉,我如何管理这个,顺便说一句,最好使用进程而不是线程,因为大概是涉及密集IO交互?

最佳答案

您需要两个队列,URLFetchers 将从一个队列中弹出 URL 并插入第二个队列,然后 AnchorInserters 应从第二个队列中弹出来处理数据。该组织应该为您的问题提供良好的同步机制。

编辑:避免 worker 退出

您需要阻塞直到有一个元素可用。

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

来自 python 的 queue.get doc ...

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

关于python - python中有两个或多个工作队列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6028493/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com