【问题标题】:Scheduled Django management commands using Zappa & Lamda使用 Zappa 和 Lamda 安排的 Django 管理命令
【发布时间】:2021-01-24 21:25:33
【问题描述】:

我的 Django 网站使用 Zappa 在 Lambda 上工作。这很简单。我现在正在寻找如何设置计划的 Django 管理命令。根据我的阅读,解决方法是创建执行管理命令的 Python 函数,然后使用 Zappa 设置文件安排这些函数运行。由于帮助手册没有说明,这仍然是正确的方法吗?

【问题讨论】:

    标签: django python-zappa


    【解决方案1】:

    在撰写本文时,有一个 open Zappa issue 与此有关。

    symroe 提出了这个似乎效果很好的解决方案:

    class Runner:
      def __getattr__(self, attr):
        from django.core.management import call_command
        return lambda: call_command(attr)
    
    import sys
    sys.modules[__name__] = Runner()
    

    这允许您在 zappa_settings.json 文件中指定任何 Django 管理命令,而无需进一步修改代码。该位看起来像这样,其中zappa_schedule.py 是包含上述代码的文件的名称,publish_scheduled_pages() 是注册的管理命令:

    "events": [{
      "function": "zappa_schedule.publish_scheduled_pages",
      "expression": "rate(1 hour)"
    }],
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-05-04
      • 1970-01-01
      • 2020-06-10
      • 1970-01-01
      • 2012-06-29
      • 2012-05-01
      • 1970-01-01
      相关资源
      最近更新 更多