专栏首页一日一工具Python中的任务调度库

Python中的任务调度库

Python中的任务调度库

最近写一个异步的小功能,不想一上来就用Celery重器,最开始使用的是Flask搭配concurrent.futures的 ThreadPoolExecutor功能来实现,但是执行效果并不如预期,后面改成了FastAPI的Background Tasks功能,能实现想要的效果,但是也有缺陷,今天我们来罗列下python中的受欢迎的任务调度库有哪些。

任务调度库

这里的罗列只是所接触到的其中的一小部分,如果你使用过更好的,欢迎留言

列表

•schedule•python-crontab•APScheduler•Celery•Django Q

schedule

schedule 是给人类使用的作业调度器,简单、轻量级、无需配置、语法简单,缺点是阻塞式调用、无法动态添加或删除任务。

python-crontab

python-crontab 是一个 Python 模块,它提供对 cron 作业的访问,并使我们能够从 Python 程序中操作 crontab 文件。能够动态添加任务。

APScheduler

一款Python开发的定时任务工具,偏定时,但是不依赖于Linux系统的crontab系统定时,独立运行,使用也非常广泛。

Celery

Celery 是一个简单,灵活,可靠的分布式系统,用于处理大量消息,同时为操作提供维护此类系统所需的工具, 也可用于任务调度。

Django Q

django的多处理分布式任务队列,有人拿这个和celery做对比,功能强大,可以和Django无缝集成,我之前写过一个工具用的就是这个,更轻量级,个人觉得很好用。缺点是只能用在Django上。

如何选择

看我们的场景是实现小工具还是要实现后端服务,如果是小工具的话,追求简洁明了,尽可能的减少依赖性的添加,如果是实现后端服务,我们需要为前端返回进度和状态,这个时候用的最多的算是APScheduler和Celery了。

本文分享自微信公众号 - 追马Linux(zhuima_k8s),作者:追马

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-08-02

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • python 任务调度scheduler

    用户5760343
  • [原创]-数据仓库任务调度

    随着数据仓库的开发,ETL作业会越来越多,怎么把这些作业有序的运行起来,就需要一个健壮的调度系统来保证数据能够准确、及时的提供给BI应用程序。

    DataScience
  • Python任务调度之sched

    这次我们主要讲解下Python自带模块当中的sched,不但小巧,也很强大,在实际应用中,某些场合还是可以用到的。作为一名Linux的SA,我们已经习惯了用cr...

    py3study
  • linux中crontab任务调度

    小小咸鱼YwY
  • Python任务调度模块APSched

    官网文档:http://apscheduler.readthedoc... API:http://apscheduler.readthedoc...

    py3study
  • 任务调度-第三方库Quartz实现分布式任务管理与调度

    首先管理的目的是通过集群多节点的管理提供容错,调度的目的是保证同一任务只会被完整执行一次;之前分享过的任务调度-单体应用定时任务解决方案是在单系统的情况下,所以...

    秋日芒草
  • 任务调度器 (难度:中等) - Day20201205

    给你一个用字符数组 tasks 表示的 CPU 需要执行的任务列表。其中每个字母表示一种不同种类的任务。任务可以以任意顺序执行,并且每个任务都可以在 1 个单...

    前端小书童
  • 任务调度SpringTask

    在企业级应用中,经常会制定一些“计划任务”,即在某个时间点做某件事情,核心是以时间为关注点,即在一个特定的时间点,系统执行指定的一个操作。常见的任务调度框架有Q...

    一点博客
  • FreeRTOS 任务调度 任务创建

    FreeRTOS 的任务调度在 Source/include/task.c 中实现,包含了任务的创建、切换、挂起、延时和删除等所有功能。涉及到的链表组织见文章 ...

    orientlu
  • FreeRTOS 任务调度 任务切换

    前面文章 < FreeRTOS 任务调度 任务创建 > 介绍了 FreeRTOS 中如何创建任务以及其具体实现。 一般来说, 我们会在程序开始先创建若干个任务...

    orientlu
  • 浅析Linux中crontab任务调度

    以上所述是小编给大家介绍的Linux中crontab任务调度,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对ZaL...

    砸漏
  • 任务调度-分布式任务调度平台XXL-JOB

    如果上述二种方式都不满足你的需求,我建议你尝试使用XXL-JOB或其他开源调度平台。

    秋日芒草
  • Linux中的计划任务—Crontab调度重复执行的任务

    本博文的主要目的是让笔者和读者可以了解并掌握以下内容: 1、Crontab的基本概念 2、Crontab的基本组成 3、操作Crond服务 4、配置系统...

    小小工匠
  • Python任务调度模块APScheduler使用

    APScheduler是一个Python定时任务框架,使用起来十分方便。提供了基于日期、固定时间间隔以及crontab类型的任务,并且可以持久化任务、并以dae...

    砸漏
  • Quartz任务调度器

    这里加入的是quartz-1.8.6版本。Quart的官网:http://www.quartz-scheduler.org/;项目中的框架的spring是spr...

    intsmaze-刘洋
  • Spring Batch任务调度

    在前面的例子中,我们配置的任务都是在项目启动的时候自动运行,我们也可以通过JobLauncher或者JobOperator手动控制任务的运行时机,这节记录下它们...

    技术从心
  • Spring的任务调度处理

    Spring封装了JDK的任务调度线程池和任务调用,并使用标签就可以开启一个任务调用。

    算法之名
  • Python任务调度模块 – APScheduler,Flask-APScheduler实现定时任务

      看代码,定义一个函数,然后定义一个scheduler类型,添加一个job,然后执行,就可以了,代码是不是超级简单,而且非常清晰。看看结果吧。

    用户1214487
  • Linux中的计划任务—Crontab调度一次性执行的任务at/batch

    前不久我们梳理了Linux中的计划任务—Crontab调度重复执行的任务,但是有些场景我们只是需要执行一次,执行完就结束任务该怎么办呢? 这里我们要用到linu...

    小小工匠

扫码关注云+社区

领取腾讯云代金券