我正在使用celery / rabbitmq,我想在队列达到最大长度后得到确认,它确实拒绝了最新任务,但是我无法通过队列ID获得任何有用的信息。我怎么知道它已被队列ID拒绝?
我阅读了有关celery和rabbitmq的文档,似乎没有任何功能可以通知我任务已被拒绝,只有处理死信队列的方式。我不需要dlx,我想拒绝它并获得状态。如果被拒绝,我现在所能得到的就是状态值/状态,该值处于待处理状态,并且永远不会改变,对我没有用。
CELERY_QUEUES = (
Queue(
'test',
exchange=Exchange('test'),
routing_key="test",
queue_arguments={'x-max-length': 3, 'x-overflow': 'reject-publish'}
),
)
...
def query_tx(req, id):
result = AsyncResult(id=id)
print(dir(result))
if result.ready():
res, status = result.get()
print(res, status)
if status == '1':
dit = {'status': status, 'tx_hash': res}
print(dit)
return JsonResponse(dit)
print('status :-1')
return JsonResponse({'status': -1})