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 прецедент.

Другие вопросы по тегам