Django 如何设置计划任务?

  • 回答 (2)
  • 关注 (0)
  • 查看 (100)

我一直在使用Django开发一个Web应用程序,而且我很好奇是否有办法安排一个定期运行的工作。

基本上我只是想通过数据库运行一些自动,定期的计算/更新,但我似乎无法找到任何文件这样做。

有谁知道如何设置?

澄清:我知道我可以设置一个cron工作来做到这一点,但我很好奇,如果在Django中有一些功能提供这个功能。我希望人们能够自己部署这个应用程序,而不必做很多配置(最好是零)。

我曾经考虑通过简单地检查自上一次请求发送到网站以来是否应该运行一个工作来触发这些操作,但是我希望有一些更简洁的东西。

伤旧伤旧提问于
嗨喽你好摩羯座回答于

如果你使用的是标准的POSIX操作系统,你可以使用cron。

如果你使用的是Windows,你使用的。

写一个Django管理命令

  1. 找出他们在哪个平台上。
  2. 无论是执行适当的“AT”命令为您的用户,或更新您的用户的crontab。
御姐万岁回答于

我采用的一个解决方案是这样做的:

1)创建一个自定义的管理命令,例如

python manage.py my_cool_command

2)使用cron(在Linux上)或at(在Windows上)在需要的时间运行我的命令。

这是一个简单的解决方案,不需要安装沉重的AMQP堆栈。然而,在其他答案中提到的使用像芹菜这样的东西有很多好处。特别是在Celery中,不用将应用程序逻辑分散到crontab文件中就可以了。但是,cron解决方案对于中小型应用程序来说工作得非常好,并且不需要太多的外部依赖。

编辑:

在Windows的更高版本中at,Windows 8,Server 2012及更高版本不推荐使用该命令。您可以使用schtasks.exe相同的用途。

扫码关注云+社区

领取腾讯云代金券