Django REST представление + сельдерей
Я хочу создать новую конечную точку GET или POST (что лучше?) для запуска определенной задачи celery. В теле JSON я буду указывать текст, и в зависимости от этого текста будет запускаться нужная задача.
Если в теле я укажу - 'first', то будет запущена задача generate_first_results. Если 'second', то будет запущена задача generate_second_results. Если "третий", то будет запущена задача generate_third_results.
Я создал:
urls.py
router.register('get_results', views.ResultsViewSet, basename='get_results')
views.py
class ResultsViewSet(viewsets.ViewSet):
def get(self, request):
logger.info('Running results')
try:
# need to make a separation depending of the body
generate_first_results.delay()
generate_second_results.delay()
generate_third_results.delay()
return Response(status=status.HTTP_202_ACCEPTED)
except Exception as e:
logger.debug('Failed', e)
return Response(status=status.HTTP_500_INTERNAL_SERVER_ERROR)