我在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 Asynchronous Support一起使用。在这里也尝试了python线程。但是所有这些都要求等待功能完成。
我知道我们可以使用Celery轻松实现这一目标。但是这种方法需要我使用消息代理,例如Redis,RabbitMQ或我不应该使用的任何其他类似服务器。
答案 0 :(得分:0)
在我看来,将芹菜与django结合使用确实很容易,建议使用。我不确定您为什么反对使用消息代理,您建议的两个选项都是真正稳定且经常使用的项目。
但是,如果您仍然有经纪人约束,我可以建议您不要使用中间经纪人的apscheduler