V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
askask
V2EX  ›  Django

django 如何执行定时任务,定时执行脚本,或者定时调用 django 中的一个 views

  •  
  •   askask · 2016-03-22 13:31:08 +08:00 · 5489 次点击
    这是一个创建于 3203 天前的主题,其中的信息可能已经有所发展或是发生改变。

    需求:

    能在 django 前端修改任务开始和结束的时间。

    9 条回复    2016-03-23 10:50:56 +08:00
    loading
        1
    loading  
       2016-03-22 13:33:10 +08:00 via Android
    crontab
    lyhapple
        2
    lyhapple  
       2016-03-22 13:35:42 +08:00
    安装 django-cron 库,然后写你自己的 task ,再去 linux 里执行 corntab -e 编辑定时任务脚本,将任务注册到服务器。
    qq316107934
        3
    qq316107934  
       2016-03-22 13:35:56 +08:00
    thread.run while(flag) time.sleep
    askask
        4
    askask  
    OP
       2016-03-22 15:37:04 +08:00
    @lyhapple 有简单的实例参考一下吗?
    askask
        5
    askask  
    OP
       2016-03-22 15:53:40 +08:00
    @lyhapple http://my.oschina.net/vincent67/blog/177469 我如何按照这个的话 貌似不能我自定义开始和结束的时间呀。
    jixiangqd
        6
    jixiangqd  
       2016-03-22 16:10:40 +08:00
    @askask 使用 celery ,动态添加任务能满足需求吗?
    askask
        7
    askask  
    OP
       2016-03-22 16:53:23 +08:00
    @jixiangqd 看了下文章 感觉 celery 很麻烦? 需要 redis ?
    chenxytw
        8
    chenxytw  
       2016-03-22 17:06:26 +08:00
    @askask crontab 执行的不是具体任务,可以认为是一个任务执行器,设为 A 吧,它按照你可以修改的时间的最小粒度进行定时,比如你可以编辑的最小粒度是 5 分钟,那 A 可能是 2 分钟执行一次。
    而 A 执行的逻辑是,读取你需要真正执行的任务,然后运行对应的代码或者脚本什么的。
    至于这些可编辑的任务的信息是存在数据库还是文件还是内存 Cache 则随意,只要 A 能拿到就行了。
    askask
        9
    askask  
    OP
       2016-03-23 10:50:56 +08:00
    @chenxytw
    @lyhapple

    http://blog.csdn.net/jazywoo123/article/details/49666641

    django-crontab 用这个模块解决了。多谢各位大牛
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1939 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 00:57 · PVG 08:57 · LAX 16:57 · JFK 19:57
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.