我有以下内容:
def save(self):
for lang in ["es", "ar"]:
setattr(self, "title_" + lang, translateField(self.title, lang))
super(Landmarks, self).save()
该translateField
函数调用 Microsoft 翻译 API,这需要一些时间才能完成执行。
是否可以异步执行相同的操作?
谢谢。
我有以下内容:
def save(self):
for lang in ["es", "ar"]:
setattr(self, "title_" + lang, translateField(self.title, lang))
super(Landmarks, self).save()
该translateField
函数调用 Microsoft 翻译 API,这需要一些时间才能完成执行。
是否可以异步执行相同的操作?
谢谢。
Django 不是一个异步框架。
您需要一个异步作业/任务队列,例如celery:
Celery 是一个基于分布式消息传递的异步任务队列/作业队列。它专注于实时操作,但也支持调度。
django-celery包使得 django 和 celery 的集成变得更加容易。
还有一个Redis Queue项目:
RQ(Redis Queue)是一个简单的 Python 库,用于对作业进行排队并在后台与工作人员一起处理它们。它由 Redis 支持,旨在降低进入门槛。它应该很容易集成到您的 Web 堆栈中。
另见: