我在 Django 中有一个端点,它启动了一个需要很长时间才能完成的函数。我不希望请求等到此功能完成。
def MyRequest(APIView):
def get(self, request, *args **kwargs):
a_function_which_takes_really_long_time()
return Response({"message" : "We're Working on it."})
我尝试将asyncio与Django异步支持一起使用。还在这里尝试了python线程。但所有这些都在请求等到功能完成。
我知道我们可以使用芹菜轻松实现这一目标。但是这种方法需要我使用消息代理,例如Redis,RabbitMQ或任何其他我不应该使用的类似服务器。
在我看来,将芹菜与 django 一起使用真的很容易,值得推荐。我不确定你为什么反对使用消息代理,你建议的两个选项都是非常稳定和广泛使用的项目。
但是,如果您仍然有代理约束,我可以推荐不使用中间代理的 apscheduler