gpt4 book ai didi

通用的定时任务工具schedule-server

转载 作者:撒哈拉 更新时间:2024-12-12 18:23:25 57 4
gpt4 key购买 nike

背景: 我曾经在一个自动化测试平台中集成定时任务,基于 APScheduler 库花了好长时间解决重复执行的问题。定时任务集成在服务中也让服务变得复杂。最后,我们选择了公司其他团队go语言开发的一个定时任务服务。于是萌生了想法,和不用 Python实现一个通用的定时任务服务。于是,schedule-server应运而生.

schedule-server 特点

  • 运行与部署简单。
  • 基于HTTP触发请求。
  • 支持三种类型的定时任务:crontabintervaldate
  • 支持定时任务的查询删除添加暂停/恢复等操作。

schedule-server 架构图

  • schedule_server: 核心功能是定时触发HTTP请求。
  • fontend: 通过前端UI管理定时任务。
  • you server: 在你的服务中通过调接口的方式管理定时任务。
  • SQLite: 用于保存定时任务服务。
  • Redis: 通过Redis锁解决重复触发的问题。

安装与运行

安装依赖 。

> cd schedule_server
> pip install -r requirements.txt

开发运行 。

> uvicorn main:app --reload

INFO:     Will watch for changes in these directories: ['/.../schedule-server/schedule_server']
INFO:     Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
INFO:     Started reloader process [21905] using StatReload
INFO:     Started server process [21907]
INFO:     Waiting for application startup.

查看API 。

访问URL: http://127.0.0.1:8000/docs 。

前端服务

使用schedule_server服务可以不需要前端,但是,你想可视化的方法管理定时任务,我还为此专门开发了个前端服务.

安装依赖 。

> npm install

运行服务 。

> npm run dev

> wiremock-ui@0.0.1 dev
> vite
  VITE v4.3.9  ready in 3426 ms
  ➜  Local:   http://localhost:5173/
  ➜  Network: use --host to expose
  ➜  press h to show help

访问前端页面 。

访问url: http://localhost:5173/ 。

定时类型

schedule-server支持三种定时类型:crontab、interval、date,可以满足不同的需求.

date类型 。

data类型比较简单,适合固定的日期时间触发定时任务.

  • 调用接口 。

    • URL:http://127.0.0.1:8000/scheduler/date/add_job
    • Method: POST
    • Type: JSON
{
  "job_id": "date_job_111",
  "url": "https://httpbin.org/get?id=111",
  "year": 2022,
  "month": 11,
  "day": 18,
  "hour": 7,
  "minute": 0,
  "second": 0
}
  • 前端配置

interval类型 。

interval适合间隔时间重复执行的定时任务.

  • 调用接口 。

    • URL:http://127.0.0.1:8000/scheduler/interval/add_job
    • Method: POST
    • Type: JSON
{
  "job_id": "interval_job_222",
  "url": "https://httpbin.org/get?id=222",
  "hours": 0,
  "minutes": 0,
  "seconds": 10
}
  • 前端配置

cron类型 。

conn使一种复杂的定时任务,能够支持所有的定时任务需求.

  • 调用接口 。

    • URL:http://127.0.0.1:8000/scheduler/cron/add_job
    • Method: POST
    • Type: JSON
{
  "job_id": "cron_job_333",
  "url": "https://httpbin.org/get?id=333",
  "second": "0",
  "minute": "*/3",
  "hour": "*",
  "day": "*",
  "month": "*",
  "day_of_week": "*"
}

可以参考这个网站学习:https://tooltt.com/crontab-parse/ 。

  • 前端配置

最后此篇关于通用的定时任务工具schedule-server的文章就讲到这里了,如果你想了解更多关于通用的定时任务工具schedule-server的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

57 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com