У меня есть задача сельдерея, которая отправляет данные в другой сервис. Я добавил задачу сельдерея send_inventory_request
в RequestSupplyStock
представление на основе классов. Когда я делаю пост, я должен сначала получить результаты от задачи сельдерея, а затем продолжить и вернуть ответ. Я хотел бы сначала дождаться результата от задачи сельдерея, а затем вернуть ответ от метода post, который является правильным способом для достижения этой цели.
@app.task
def send_inventory_request(payload,token):
auth = {'authorization':token}
HEADERS.update(auth)
url = PROCUREMENT_SUPPLY_STOCK_REQUESTS_URL
res = requests.post(url,json=payload,headers=HEADERS)
inventory_request_data = res.json()
x= logger.info('Supply Stock Request {0} + {1}'.format(payload,token))
print(x)
return inventory_request_data
View
class RequestSupplyStock(generics.CreateAPIView):
def post(self, request, format=None):
........
send_inventory_request.delay(payload,get_token(request))
.........
return Response(status=status.HTTP_201_CREATED)