Django 异步 - 关于模型保存功能

moe*_*nad 5 python django asynchronous

我有以下几点:

def save(self):
    for lang in ["es", "ar"]:
        setattr(self, "title_" + lang, translateField(self.title, lang))
    super(Landmarks, self).save()
Run Code Online (Sandbox Code Playgroud)

translateField函数调用 Microsoft 转换器 API,这需要一些时间才能完成执行。

是否可以异步执行相同的操作?

谢谢。

ale*_*cxe 1

Django 不是一个异步框架。

您需要一个异步作业/任务队列,例如celery

Celery是一个基于分布式消息传递的异步任务队列/作业队列。它专注于实时操作,但也支持调度。

django-celery包使得 django 和 celery 的集成变得更加容易。

还有一个Redis Queue项目:

RQ(Redis 队列)是一个简单的 Python 库,用于对作业进行排队并在后台与工作人员一起处理它们。它由 Redis 支持,其设计门槛较低。它应该很容易集成到您的网络堆栈中。

另请参阅: