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

django 的定时任务不执行异步操作么

  •  
  •   334862132 · 2019-03-12 08:59:01 +08:00 · 2757 次点击
    这是一个创建于 2087 天前的主题,其中的信息可能已经有所发展或是发生改变。
    最近有个需求需要定时任务去执行,但是看现在执行的定时任务太多顺手就做了个异步把这个定时任务嵌在了别的定时任务后面,昨天刚上线,结果今天一看定时任务原任务执行了,我的发送邮件任务竟然没执行,求解答 ,代码没问题,我手动执行一次那定时任务立刻就收到邮件了
    上代码

    from concurrent.futures import ThreadPoolExecutor
    executor = ThreadPoolExecutor() # 异步
    异步嵌入这么写的
    executor.submit(mail)
    这个异步是没问题的,因为我以前异步全是这么写的,线上也正常运行,没有问题
    6 条回复    2019-03-12 14:42:46 +08:00
    cs8814336
        1
    cs8814336  
       2019-03-12 09:48:34 +08:00   ❤️ 1
    那可能就是要看你的这段代码有没运行到了. 我这边 django 定时任务使用 crontab 做的.. 异步任务可以用 celery
    youngce
        2
    youngce  
       2019-03-12 10:12:37 +08:00   ❤️ 1
    我也感觉是代码没有执行到这里?我的定时任务也是用 celery 做的,管理起来也还好
    334862132
        3
    334862132  
    OP
       2019-03-12 11:18:28 +08:00
    @cs8814336
    django 的定時任务本身就是通过 django 系统写入 linux 里面 跟 linux 执行有关,跟 django 运行不允许无关的 我们没用 celery 要是自己做还要添加新模块 比较麻烦的
    334862132
        4
    334862132  
    OP
       2019-03-12 11:18:43 +08:00
    @youngce 我感觉也是代码没执行到这
    xpresslink
        5
    xpresslink  
       2019-03-12 12:22:53 +08:00   ❤️ 1
    楼主的说法不能让人理解啊。不知道你是不是用的 django-crontab ?哪个玩意儿是依赖于 Linux 操作系统的 crontab 的。
    外部调用 django 下的程序脚本的时候要初始化 django 运行环境才能正常工作。
    如果你要定时任务和异步任务两种操作,最好还是上 celery 比较可靠。
    同时结合 django 的 signal 机制来实现一些有前后依赖关系的任务。
    cs8814336
        6
    cs8814336  
       2019-03-12 14:42:46 +08:00
    @334862132 你这句话的标点符号看的我有点蒙...我说的那个定时任务是, 通过 crontab 定时执行 py 脚本, 这个 py 脚本可以复用到 django 的 model(当然这样就是要初始化 django 运行环境了). 这样 crontab 就是 linux 系统自己的调度了.相关调度日志也是可以查看系统日志.
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5939 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 01:50 · PVG 09:50 · LAX 17:50 · JFK 20:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.