5

我有以下内容:

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

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

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

谢谢。

4

1 回答 1

0

Django 不是一个异步框架。

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

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

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

还有一个Redis Queue项目:

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

另见:

于 2013-09-07T19:07:36.370 回答