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
frostming
V2EX  ›  Python

无需额外进程的 Flask 定时任务扩展

  •  
  •   frostming ·
    frostming · 2019-12-08 22:10:50 +08:00 · 5124 次点击
    这是一个创建于 1572 天前的主题,其中的信息可能已经有所发展或是发生改变。

    现在如果要在 Flask 中做后台定时任务,主要有 Celery, APScheduler, Huey 几种方案可选,但是这些都需要另起一个外挂进程处理任务,有的还需要额外的服务(redis, rabbitmq)等( Celery 对新手还不友好,文档劝退)。

    既然系统上已经有了 crontab,为什么不用它呢?找了一下发现 django-crontab 在 Flask 没有对应的扩展。 代码很简单,两个小时撸出来的,方便 Flask 新手学习 Flask 扩展的编写。非常微小的工作,如果觉得好用就给个 star。 地址在 https://github.com/frostming/flask-crontab

    P.S. 既然是用 crontab,那当然不支持 windows,等我有空看看 windows 的定时任务怎么用 python 调起来

    12 条回复    2019-12-09 18:02:16 +08:00
    ClericPy
        1
    ClericPy  
       2019-12-08 22:17:52 +08:00
    已经是 systemd 的时代了... 这是建国前......

    造轮子精神可嘉, crontab 我以前用的是那个 plan 库, 配合 supervisord 做的后台管理

    给 pipenv 贡献者点赞 👍
    wzwwzw
        2
    wzwwzw  
       2019-12-08 22:19:00 +08:00
    apscheduler 不香吗? flask 本身就需要启动多个 worker 的,支持持久化,api 之类的。
    superrichman
        3
    superrichman  
       2019-12-08 22:49:26 +08:00
    已 star, 原来是位大佬, follow 一下表示尊敬.
    Trim21
        4
    Trim21  
       2019-12-08 23:10:18 +08:00   ❤️ 1
    写过 windows 的, 定时任务用的是 SCHTASKS, 可以用 schtasks /Create 和 schtasks /Delete 创建和删除
    haoji
        5
    haoji  
       2019-12-08 23:25:57 +08:00
    已 star
    rogwan
        6
    rogwan  
       2019-12-08 23:46:54 +08:00 via iPhone
    多个 worker 进程模式使用 flask,用 楼主的 Flask-crontab 会重复启动定时任务吗?
    Vogan
        7
    Vogan  
       2019-12-08 23:59:15 +08:00 via iPhone
    分布式应用的场景考虑过吗
    laike9m
        8
    laike9m  
       2019-12-09 02:23:45 +08:00
    对于一些轻量级程序还是挺有用的
    frostming
        9
    frostming  
    OP
       2019-12-09 08:48:15 +08:00
    @rogwan 一次添加则持久化到 crontab 后台,和 flask 运行与否,用多少 worker 运行无关
    frostming
        10
    frostming  
    OP
       2019-12-09 08:49:29 +08:00
    @Trim21 感谢
    lolizeppelin
        11
    lolizeppelin  
       2019-12-09 15:21:22 +08:00
    好好学习下写守护进程和要命了一样
    frostming
        12
    frostming  
    OP
       2019-12-09 18:02:16 +08:00
    @lolizeppelin 「好好学习下」后面有断句吗
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2953 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 15:07 · PVG 23:07 · LAX 08:07 · JFK 11:07
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.