gpt4 book ai didi

python - block 执行直到条件

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

我正在使用 eventlet 并且有两个主进程在运行。其中一个进程充当生产者,另一个充当消费者。问题是我不想使用 eventlet 包中的队列,而是想使用数据库。使用队列,我可以简单地传递 (block=True) 作为参数,eventlet 将负责阻止消费者例程的执行,直到生产者将某些东西放入队列。如果我用 db 替换队列,我如何有效地实现阻塞逻辑。

最佳答案

有关背景,您可能希望阅读这篇维基百科文章:http://en.wikipedia.org/wiki/Inter-process_communication

我建议在这两个进程之间使用套接字连接。您可以通过这种方式轻松发送一些数据和唤醒信号。请注意,TCP 没有消息的概念(作为整体发送和传递的信息),因此您必须实现一个简单的协议(protocol)来实现这一点。我推荐 tnetstring [1]。另一种方法是使用 ZeroMQ,因为它提供消息。 Eventlet 对这两种方式都提供了出色的支持。

您可能需要生产者/消费者的事务作业语义,例如:任何数据要么完全由某个消费者处理,要么失败,需要重复尝试或人工关注。然后你真的必须使用某种带有事务的数据库。有现成的解决方案:Celery [2]、beanstalk [3]、pyres [4]。

关于python - block 执行直到条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26251274/

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