У меня есть служба Django, которая регистрирует множество клиентов и отображает полезную нагрузку, содержащую таймер (скажем, 800 с) после того, как служба должна быть приостановлена клиентом (Изменить статус в состоянии SUSPENDED в MongoDB)
Я запускаю celery с rabbitmq в качестве брокера следующим образом:
celery / tasks.py `
@app.task(bind=True, name='suspend_nf')
def suspend_nf(pk):
collection.update_one({'instanceId': str(pk)},
{'$set': {'nfStatus': 'SUSPENDED'}})
`
и вызываю задачу в представлении django следующим образом:
api / views.py `
def put(self, request, pk):
now = datetime.datetime.now(tz=pytz.timezone(TIME_ZONE))
timer = now + datetime.timedelta(seconds=response_data["heartBeatTimer"])
suspend_nf.apply_async(eta=timer)
response = Response(data=response_data, status=status.HTTP_202_ACCEPTED)
response['Location'] = str(request.build_absolute_uri())
`
Что мне здесь не хватает?