该守则有5名工人在工作。每个工人都是这样的(短代码):
async def worker(name):
queue_item = await queue.get()
msg = queue_item.message #<--- first attempt
#.....#
try:
#...get_message fails(timeout)...raise#
except errors.TimedOutError:
#Retry to get the message
msg = await get_messages(queue_item.channel, ids=queue_item.id) # <-- retry
#in order to process it again I put it in different queue
await queue_retry.put(msg)
但是,是否需要await queue_retry
等待msg = await get_messages
完成才能更新队列?
如果没有,我不知道它会放什么味精,我怀疑它不会等待新的get_message
,而会放下旧的。
是否
await queue_retry
等待msg = await get_messages
更新队列之前完成?
是:在继续之前await get_messages(...)
等待get_messages(...)
完成。如果不确定,请将变量名称更改为emg msg2
(在await
和中queye_retry.put lines
),以使自己确信您没有使用旧的变量msg
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句