py-amqp/flopsy: ожидание одного сообщения AMQP в Python
У меня есть вопрос, похожий на этот: в py-amqp / flopsy очень легко сказать: "Я буду ждать вечно, и я хочу, чтобы этот обратный вызов вызывался всякий раз, когда приходит сообщение", но я не могу найти любой способ сказать: "Хорошо, я получил сообщение, которое я хочу, теперь перестань ждать". (Может быть, GOTO? Просто шучу...) Есть ли элегантный способ сделать это?
1 ответ
Хорошо, возможно, это должно было быть для меня очевидно: если вы регистрируете обратный вызов в flopsy (который является тонкой оболочкой вокруг amqplib) с
consumer.register('kind', callback_func)
consumer.wait()
# more code goes here...
тогда ты можешь raise
Исключение в callback_func
чтобы добраться до остальной части кода.
Бонусный вопрос: как установить максимальное время ожидания для wait()
если ответ не получен? Скажем, что это в контексте unittest
прецедент.