Как собирать данные обратно в класс запроса в celery Django
Я создал функцию в views.py и в функции сериализации объектов в json, после чего передал эти данные в задачу celery, но у меня возникли проблемы со сбором данных обратно в класс request. То есть я не могу собрать данные обратно в json в класс запроса, потому что я должен передать этот класс запроса в другую функцию celery task
views.py
def create(self, request, *args, **kwargs):
instance = self.get_object()
serializer = self.get_serializer(instance, data=request.data)
serializer.is_valid(raise_exception=True)
request_data = {
"crm_id": request.JWT.crm_id,
"crm": None,
"crmuser": request.JWT.crmuser.id,
"crm_users": None
}
matching_fields = serializer.validated_data['matching_fields']
import_data.delay(request_data, instance.id, matching_fields)
task.py
@shared_task
def import_data(request_data, instance_id, matching_fields):
instance = ImportRecord.objects.get(id=instance_id)
request_data['crm'] = Crm.objects.get(id=request_data['crm_id'])
request_data['crmuser'] = CrmUser.objects.get(id=request_data['crmuser'])
request_data['crm_users'] = CrmUser.objects.all().filter(crm_id=request_data['crm_id'])
helper = ImportData(matching_fields, instance, request)
helper.import_data()
как я могу обратно собрать json request_data в класс запроса
Celery - это асинхронный процесс, поэтому, насколько я знаю, если вам нужен результат работы celery для использования в другой части вашего кода, лучшей практикой будет сохранение результата в базе данных, а затем получение данных там, где это необходимо.