|
主题设置

卡片式面板通常用于非白色背景色的主体内

定时任务

Web API 的定时任务可以在预定的时间间隔或特定时间执行某些任务或操作。通常用于周期性地执行数据清理、报告生成、提醒通知等后台任务,以确保系统的正常运行和数据的及时处理。

安装 GZY.Quartz.MUI

原本在 winform 上做定时任务,用的是 Quartz,但是配置比较复杂,想着有没有配置简单点,又能有 UI 界面的。

所以就找到了 GZY.Quartz.MUI

在项目上右键——NuGet 包管理器,搜索 GZY.Quartz.MUI 进行安装。

安装完成后在 program.cs 中引用定时任务

// 添加定时任务调度
builder.Services.AddQuartzUI();

在 Program.cs 中使用定时任务

// 使用定时任务调度
app.UseQuartz(); 

启动项目,在弹出来的地址中,输入后缀 /QuartzUI,就能访问定时调度的 UI 界面。

下面就可以愉快的添加自己的定时调度了。(新添加的任务,默认是暂停状态,需要启动后才能立即执行)

定时执行 API

点击新建任务

输入对应的参数创建定时任务

新建的定时任务默认是暂停状态,需要开启任务。

开启后可以点击任务右侧的 “执行记录” 按钮,查看执行情况。

发现每次执行的时候都报错了:Value cannot be null. (Parameter 'content')

是说缺失参数,我看了调用的 API 接口,接口中没有参数。

问了度娘,说这是 GZY.Quartz.MUI 的 bug,没办法解决。

因此尝试修改任务参数,将参数输入 null

保存后任务再次执行时,竟然成功了。

定时执行本地方法

在项目中添加 jobs 文件夹,在文件夹中常见 TestJob.cs

继承 IJobService 如下

using GZY.Quartz.MUI.BaseService;

namespace webapi_rumen.Jobs
{
    public class TestJob : IJobService
    {
        public string ExecuteService(string parameter)
        {
            return "定时任务已执行成功!";
        }
    }
}

在 program.cs 中添加

// 引用本地调度任务访问
builder.Services.AddQuartzClassJobs();

运行项目,在定时调度的UI界面添加调度任务。

开启任务,查看“执行记录”,执行成功,如下: