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)
Вернуться на верх