V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
liudaqi
V2EX  ›  Python

用 while+time.sleep()做定时任务,和 contrab 启动定时任务,使用上有什么差别吗?

  •  
  •   liudaqi · 2018-11-27 16:45:40 +08:00 via Android · 2942 次点击
    这是一个创建于 1948 天前的主题,其中的信息可能已经有所发展或是发生改变。
    要创建一个每隔 2 小时运行一次的数据库清理任务,用 while 和 contrab 启动这样的任务,有什么差别吗?推荐用哪个方式比较好?
    10 条回复    2018-11-28 16:34:39 +08:00
    Outliver0
        1
    Outliver0  
       2018-11-27 16:52:26 +08:00
    while 是 python 程序在执行任务,contrab 是托管到操作系统,推荐第二个,具体看实际
    xia0pia0
        2
    xia0pia0  
       2018-11-27 17:15:12 +08:00
    推荐是第二个,一般来说系统不挂的话,crontab 的稳定性还是挺可靠的。
    aaa5838769
        3
    aaa5838769  
       2018-11-27 17:18:07 +08:00
    推荐第二个
    holajamc
        4
    holajamc  
       2018-11-27 17:28:54 +08:00   ❤️ 1
    37Y37
        5
    37Y37  
       2018-11-27 17:42:22 +08:00
    virusdefender
        6
    virusdefender  
       2018-11-27 17:47:43 +08:00
    单个简单任务的话,crontab 足够了,复杂任务我用 apscheduler,如果每个任务都开单独进程的话,有些浪费
    iConnect
        7
    iConnect  
       2018-11-27 20:04:31 +08:00
    推荐 APScheduler 简单好用
    rrfeng
        8
    rrfeng  
       2018-11-27 20:25:33 +08:00
    1. sleep 并不精确,时间差累积你懂的
    2. 执行任务的时间,你 sleep 了吗?要开另一个线程吗?
    xpresslink
        9
    xpresslink  
       2018-11-28 10:08:48 +08:00
    从可靠性来说肯定 cronjob 要好,但是有系统依赖。
    你自己写的进程要弄成守护进程才行不然总担心挂掉。
    lolizeppelin
        10
    lolizeppelin  
       2018-11-28 16:34:39 +08:00
    看你内容...如果你循环内容需要复杂的上下文那就靠守护进程 sleep, 精准问题可以通过调用系统时间定期补偿

    计划任务里的常见的数据库定期脚本注意通过 linux 文件锁来避免重复执行即可
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1533 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 17:05 · PVG 01:05 · LAX 10:05 · JFK 13:05
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.