开发中总是会定时执行一些程序,这个时候任务调度系统总是少不了的,说起任务调度,就不得不说 Quartz.NET ------一个.NET 版的任务调度框架。
之前写过一个 TaskCaller,不过不是基于 Quartz 的,没有 Quartz 的功能强大,这段时间由基于 Quartz.net 重新写了一个 httpquartz,文档如下:
项目说明
基于 Quartz.Net、Polly 的 Http 远程调度系统,netcore3.1+mysql 数据库。
在服务端有 HttpJob 提供 http 远程调度,客户端通过对 trigger 的操作来实现调度任务的管理,
通过 trigger 的 JobData 传输 http 请求的相关数据。
功能介绍
- 添加任务
- 编辑任务
- 删除任务
- 暂停任务
- 恢复任务
- 日志查看
- API 客户端
- IU 管理
服务端部署
- 新建 mysql 数据库 httpquartz
- 执行表结构和数据文件/src/HttpQuartz.Server/database/httpquartz.sql
- 修改 appsettings.json 和 quartz.config 中数据库连接信息
- 配置 appsettings.json 中 SafeClients 节点,使信任客户端可以使用 HttpAPI
- 部署 HttpQuartz.Server 项目(asp.netcore 3.1 项目)
- 用户名是:admin,密码是:123456
API 客户端
安装:
Install-Package HttpQuartz.Client
使用:
//实例化HttpClient,或者通过容器获取,并设置BaseAddress为HttpQuartz.Server的部署地址
using var client = new HttpClient {BaseAddress = new Uri("http://localhost:5000")};
var httpQuartzClient = new HttpQuartzClient(client);
//添加新任务(添加触发器),成功返回success字符串
var result = await httpQuartzClient.ScheduleJob(new TriggerModel()
{
Key = new TriggerKeyModel("test", "test"),
StartTime = DateTimeOffset.Now.AddSeconds(30),
JobData = new JobDataInfo()
{
url = "http://www.baidu.com",
},
SimpleTrigger = new SimpleTriggerInfo()
{
RepeatInterval = TimeSpan.FromSeconds(10)
},
});
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于