任务管理平台
系统简介
Quartz.net是一个开源的任务调度工具,相当于数据库中的 Job、Windows 的计划任务、Unix/Linux 下的 Cron,但 Quartz 可以把排程控制的更精细,对任务调度的领域问题进行了高度的抽象,实现作业的灵活调度。
任务管理平台通过window服务来集成Quartz.net 实现作业的调度,只需要修改配置文件和添加相应Job即可完成作业添加,使用简单方便。
项目结构
系统目前包含八个项目组成:
- TaskManager.HouTai_New (任务后台管理系统,任务)
- TaskManager.Tasks (所有作业任务的集合,目前只有一个TestJob)
- TaskManager.ServiceBus (集成Quartz.net window服务,通过window服务来承载调度TaskManager.Tasks 的各个任务Job)
- TaskManager.TaskUtility (操作任务的公共类库)
- TaskManager.Utility (整个平台的公共类库)
- TaskManager.Models
- TaskManager.BLL
- TaskManager.DAL
系统配置
系统中所有的作业信息,都存储在数据库或是配置文件中。window 宿主服务启动时,会自动读取相应的配置的job任务,完成任务的初始化和调度。
其他
1. TaskManager 支持数据库配置和配置文件配置两种方式。如果不需要后台管理端,也可以直接使用 window 服务 + 配置文件的模式。
2. web管理后台的初始登录账户:admin test123
Model层实体类相关:
PageOf.cs
using System.Collections.Generic;
using System.Runtime.Serialization;
namespace TaskManager.Models
{
public class PageOf<T>
{
/// <summary>
/// 信息对象列表
/// </summary>
public IList<T> Items { get; set; }
/// <summary>
/// 总数
/// </summary>
public int Total { get; set; }
/// <summary>
/// 页码
/// </summary>
public int PageIndex { get; set; }
/// <summary>
/// 页大小
/// </summary>
public int PageSize { get; set; }
/// <summary>
/// 记录总数
/// </summary>
public int RowCount { get; set; }
}
}
TaskModel.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace TaskManager.Models
{
/// <summary>
/// 任务实体
/// </summary>
public class TaskModel
{
/// <summary>
/// 任务ID
/// </summary>
public Guid TaskID { get; set; }
/// <summary>
/// 任务名称
/// </summary>
public string TaskName { get; set; }
/// <summary>
/// 任务执行参数
/// </summary>
public string TaskParam { get; set; }
/// <summary>
/// 运行频率设置
/// </summary>
public string CronExpressionString { get; set; }
/// <summary>
/// 任务运频率中文说明
/// </summary>
public string CronRemark { get; set; }
/// <summary>
/// 任务所在DLL对应的程序集名称
/// </summary>
public string AssemblyName { get; set; }
/// <summary>
/// 任务所在类
/// </summary>
public string ClassName { get; set; }
public TaskStatus Status { get; set; }
/// <summary>
/// 任务创建时间
/// </summary>
public DateTime? CreatedTime { get; set; }
/// <summary>
/// 任务修改时间
/// </summary>
public DateTime? ModifyTime { get; set; }
/// <summary>
/// 任务最近运行时间
/// </summary>
public DateTime? RecentRunTime { get; set; }
/// <summary>
/// 任务下次运行时间
/// </summary>
public DateTime? NextFireTime { get; set; }
/// <summary>
/// 任务备注
/// </summary>
public string Remark { get; set; }
/// <summary>
/// 是否删除
/// </summary>
public int IsDelete { get; set; }
}
}
TaskStatus.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace TaskManager.Models
{
/// <summary>
/// 任务状态枚举
/// </summary>
public enum TaskStatus
{
/// <summary>
/// 运行状态
/// </summary>
RUN = 1,
/// <summary>
/// 停止状态
/// </summary>
STOP = 0
}
/// <summary>
/// 任务配置的方式
/// </summary>
public enum TaskStore
{
DB = 1,
XML = 2
}
}
UserModel.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace TaskManager.Models
{
public class UserModel
{
public int UserId { get; set; }
public string UserName { get; set; }
public string PassWord { get; set; }
public string TrueName { get; set; }
public string UserEmail { get; set; }
public string PhoneNum { get; set; }
public int IsAdmin { get; set; }
public int Status { get; set; }
public DateTime? CreateTime { get; set; }
public DateTime? LastLoginTime { get; set; }
}
}