Django Rest Framework и задачи celery
Я хочу создать новую конечную точку GET или POST (что лучше?) для запуска определенной задачи celery. В теле JSON я буду указывать текст, и в зависимости от этого текста будет запускаться нужная задача.
Если в body я укажу - 'first', то будет запущена задача celery generate_first_results(). Если 'second', то будет запущена задача generate_second_results(). Если 'third', то будет запущена generate_third_results().
Я создал:
urls.py
router.register('get_results', views.ResultsViewSet, basename='get_results')
views.py
class ResultsViewSet(viewsets.ViewSet):
def create(self, request, *args, **kwargs):
logger.info('Running results')
serializer = ResultsSerializer(data=request.data)
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)
serializers.py
class ResultsSerializer(serializers.Serializer):
result = serializers.CharField(required=True):
Помогите пожалуйста