如何使用Django在后台运行任务?

时间:2020-07-03 11:55:05

标签: python django asynchronous celery

我在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或我不应该使用的任何其他类似服务器。

1 个答案:

答案 0 :(得分:0)

在我看来,将芹菜与django结合使用确实很容易,建议使用。我不确定您为什么反对使用消息代理,您建议的两个选项都是真正稳定且经常使用的项目。

但是,如果您仍然有经纪人约束,我可以建议您不要使用中间经纪人的apscheduler

相关问题