【问题标题】:Django asynchronous - on model save functionDjango 异步 - 关于模型保存功能
【发布时间】:2013-09-11 16:18:02
【问题描述】:

我有以下几点:

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

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

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

谢谢。

【问题讨论】:

    标签: python django asynchronous


    【解决方案1】:

    Django 不是一个异步框架。

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

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

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

    还有一个Redis Queue项目:

    RQ (Redis Queue) 是一个简单的 Python 库,用于队列作业和 在后台与工人一起处理它们。它由 Redis 支持 它的设计门槛很低。它应该是 轻松集成到您的网络堆栈中。

    另见:

    【讨论】:

    • 是的,我知道 Django 不是一个异步框架。我只是想知道任何可能的方式来完成这项工作。如果不使用第三方模块,它不存在任何其他方式吗?
    • @MohdIsmail 好的,不-无论如何你都需要第三方包。
    • 我要给Redis Queue做个测试。谢谢。
    • @MohdIsmail 当然,然后看看django_rq
    • 我遇到了一个小问题。 django admin 中的输入字段设置为<Job d7474859-3592-4b6c-8e08-ec0ea04b6e6e: realestate.models.translateField(u'Apartment', 'es')> 有什么想法吗?
    猜你喜欢
    • 2018-08-05
    • 1970-01-01
    • 2021-12-13
    • 2021-12-18
    • 2022-11-05
    • 1970-01-01
    • 2021-08-17
    • 2019-07-22
    • 1970-01-01
    相关资源
    最近更新 更多