小编dmc*_*lle的帖子

AppConfig.ready()在Django安装上运行两次(使用Heroku)

我有一个功能需要在我的一个Web应用程序的后台运行.

我实现了一个自定义AppConfig,如下所示:

class MyAppConfig(AppConfig):
    run_already = False

    def ready(self):
        from .tasks import update_products
        if "manage.py" not in sys.argv and not self.run_already:
            self.run_already = True
            update_products()
Run Code Online (Sandbox Code Playgroud)

但是,此命令正在执行两次(update_products()调用)

如文档中所述:

在通常的初始化过程中,ready方法仅由Django调用一次.但是在某些极端情况下,特别是在摆弄已安装应用程序的测试中,就可以不止一次调用ready.在这种情况下,要么编写幂等方法,要么在AppConfig类上放置一个标志,以防止重新运行应该只执行一次的代码.

我觉得我正在按照文档说的去做.是什么赋予了?

python django heroku

5
推荐指数
1
解决办法
1773
查看次数

标签 统计

django ×1

heroku ×1

python ×1