【问题标题】:Wagtail "schedule_published_pages" Management CommandWagtail "schedule_published_pa​​ges" 管理命令
【发布时间】:2019-10-16 12:51:04
【问题描述】:

我想知道为什么我的预定帖子不能在 Wagtail 中自动运行,但我在文档中看到需要一个管理命令来实现这一点。我不熟悉编写自定义管理命令,我想知道如何让python manage.py publish_scheduled_pages 命令每小时自动触发一次?

这段代码将在文档树中的什么位置?是否有我只需要放入并从那里运行的代码?或者服务器上是否需要按计划运行这些命令?

任何帮助将不胜感激。我在 Wagtail 的任何地方都找不到此功能的任何现有代码,我想知道为什么按钮在管理员中用于安排帖子,但该功能尚未内置?

【问题讨论】:

  • 您可能会在您的服务器上设置一个 crontab 以每小时运行一次(或者每 5 次错误,或者如果您真的想要每分钟运行一次)。它应该:进入你的环境并执行python3 manage.py publish_scheduled_pages。就是这样。您还可以使用像 supervisor 这样的服务来运行这些类型的任务而不是 cron 作业。

标签: django wagtail django-management-command


【解决方案1】:

您可能熟悉管理命令,因为 python manage.py runservermakemigrationsmigrate 是管理命令。

您可以通过python manage.py -h查看所有可用命令

publish_scheduled_pages 应该定期调用。形成Wagtail docs:

此命令发布、更新或取消发布已由编辑器安排了这些操作的页面。我们建议每小时运行一次此命令。

可以通过多种方式定期执行命令。通过 crontab 可能是最常见的。编辑 crontab:

$ crontab -e

添加(for every fist minute of the hour):

0 * * * * python /path/to/your/manage.py publish_scheduled_pages --settings=your.settings

【讨论】:

  • 注意:如果您将会话数据存储在数据库中,Django 还需要定期清除该数据。 docs.djangoproject.com/en/2.2/topics/http/sessions/…
  • 我明白了。所以这个命令已经写好并内置了,我只需要每小时在服务器上运行一次。我不清楚是否必须编写自定义管理命令来实现这一点。感谢您的指导。我试试看!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-05-05
  • 2018-11-13
  • 1970-01-01
  • 2012-06-29
  • 2012-05-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多