Moh*_*mza 5 python django python-3.x django-rest-framework python-asyncio
如何在Django休息框架中实现异步任务?在python3.7之后,async.io成为了python语言的一部分,并且协同程序嵌入了该语言中.
但我不能利用它我必须使用芹菜和redis服务器进行这种异步行为.
class ReportViewSet(viewsets.ModelViewSet):
queryset = Report.objects.all()
serializer_class = ReportSerializer
filter_class = ReportFilter
def create(self, request):
serializer = ReportSerializer(data=request.data)
if serializer.is_valid(raise_exception=True):
report_obj = serializer.save()
#Start multiple tools asynchronously but we need to return the next statement without waiting for those tools to finish
return Response(serializer.data, status=status.HTTP_201_CREATED)
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
Run Code Online (Sandbox Code Playgroud)
我试图修改async function运行工具的create ,但是我得到的错误是你不能在一个不是常规的执行器中运行这个函数.当我试图使create函数异步时,它返回一个共同例程而不是一个HTTP response.因此,django-rest-framework自身需要将其内部结构修改为常规类型.关于如何在不使用任何MQ或缓存技术的情况下以良好的方式做我所提到的任何建议或想法.
| 归档时间: |
|
| 查看次数: |
993 次 |
| 最近记录: |