django如何自动化views.py文件中的函数

时间:2018-02-01 10:45:50

标签: django cron

嗯,这个问题一定会让这个down br br乐队的乐趣被标记为“过于宽泛等”,但事实并非如此!但正是因为它需要“一般”知识如何运作,我找不到我要问的书中的答案。

拥有我的Django应用程序,是的,我可以通过MVC流程使其成为交互式。我遇到的问题是当我的方法与html页面(用户看到的)没有关联但是应该在后台不断运行的方法。例如,仅举例说明,想象一下查询数据库并每2小时发送一封包含新闻的电子邮件的代码片段。它只是没有做任何事情,因为我不知道如何“唤醒代码片段”。 如果我在没有Django的python中编写桌面应用程序,我就没有这个问题。如果我右键单击并说出,运行此文件,代码将在后台运行。

是的,当然我听说过cron jobs等,但到目前为止我看到你可以cron-tab一个文件,但是我如何在views.py中crontab一个方法?但我想这不是要走的路。只要我得到答案,我就会发现你只能投票。

谢谢

2 个答案:

答案 0 :(得分:2)

为此,我一直在使用命令和cron作业的组合。

写下你的command,设置你的cronjob:

30 3 * * * /home/ubuntu/project/env/bin/python /home/ubuntu/project/manage.py command_name

利润。

答案 1 :(得分:1)

如果你想在Django中执行周期性任务,那么有多种选择。

  
      
  1. 使用Crontab。
  2.   

有多个Django crontab应用程序可供使用。 (django-crontab
您只需要在设置文件中添加cron函数。

CRONJOBS = [
    ('*/5 * * * *', 'myapp.cron.my_scheduler')
] 

cron.py

from myapp.views import send_email

def my_scheduler():
    # add logic
    send_email()
  
      
  1. 使用Celery Beat
  2.   

我个人更喜欢Celery而不是crontab。您可以查看here