【发布时间】:2013-11-20 12:02:07
【问题描述】:
我有一个 Python Django 项目,其中有两个 RabbitMQ 工作人员,使用 pika 库,它接收作业以对请求中指定的某个 Django 对象执行操作。
问题是,我不希望工作人员 A 和 B 同时对同一个 Django 对象 x 执行操作,因为这可能会导致问题。哪个工人先去并不重要,但如果 A 正在处理 x 并且 B 收到一份工作来处理 x,我希望这项工作等到 A 完成。
所以问题归结为能够知道其他工人在做什么,并且能够暂停工作直到特定时间。请注意,在我的实际项目中,我有超过 2 名工人,这必须适用于,我选择两个在我的示例中以便更容易剖析。
感谢您的帮助, 马蒂亚斯
【问题讨论】:
-
这听起来像是资源限制的作业调度问题 - 不确定 RabbitMQ 是否是该作业的最佳工具。例如,如果作业 A 运行 5 分钟锁定对象 X,并且在作业 A 期间有 5,000 个作业 B 到达,那么您的程序可能会崩溃。你能对你的工作期限给出一个大概的估计吗?
标签: python django rabbitmq pika