我正在寻找一种以特定方式在多台计算机上分配工作的方法。
当有人要求完成一项工作时,它应该被发送到负载最少的计算机。如果其他人要求相同的工作,它应该订阅已经存在的工作的结果,而不是创建另一个工作。工作中的所有消费者都应该有效地同步——他们只是在得到结果之前休眠,并在它准备好时立即唤醒。如果您请求时已经完成了一项工作,那么您应该立即获得结果。
你将如何在 Python 中实现这一点?
到目前为止,我已经查看了 rabbitmq 和 celery 之类的任务队列,但是订阅任务结果的前景似乎很混乱,并且可能需要大量的队列。