ASP.NET MVC 5 实现基于Quartz.net 的任务调度管理平台(四)(完)

Common层类图

这里写图片描述


DBUtility层类图

这里写图片描述


MVC层类图

这里写图片描述

SQL脚本

USE [master]
GO
CREATE DATABASE [TaskManager] ON  PRIMARY 
( NAME = N'TaskManager', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\TaskManager.mdf' , SIZE = 2048KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB )
 LOG ON 
( NAME = N'TaskManager_log', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA\TaskManager_log.ldf' , SIZE = 1024KB , MAXSIZE = 2048GB , FILEGROWTH = 10%)
GO
ALTER DATABASE [TaskManager] SET COMPATIBILITY_LEVEL = 100
GO
IF (1 = FULLTEXTSERVICEPROPERTY('IsFullTextInstalled'))
begin
EXEC [TaskManager].[dbo].[sp_fulltext_database] @action = 'enable'
end

USE [TaskManager]
GO

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[p_User](
    [UserId] [int] NOT NULL,
    [UserName] [varchar](50) NULL,
    [PassWord] [varchar](50) NULL,
    [TrueName] [varchar](50) NULL,
    [UserEmail] [varchar](50) NULL,
    [PhoneNum] [varchar](30) NULL,
    [IsAdmin] [int] NULL,
    [Status] [int] NULL,
    [CreateTime] [datetime] NULL,
    [LastLoginTime] [datetime] NULL,
 CONSTRAINT [PK_p_User] PRIMARY KEY CLUSTERED 
(
    [UserId] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
INSERT [dbo].[p_User] ([UserId], [UserName], [PassWord], [TrueName], [UserEmail], [PhoneNum], [IsAdmin], [Status], [CreateTime], [LastLoginTime]) VALUES (1, N'admin', N'zdYqbXkNc1iKJ6s2NRB+9w==', N'admin', N'417114764@qq.com', N'18618243664', 1, 1, CAST(0x0000A5E900000000 AS DateTime), CAST(0x0000A5E900000000 AS DateTime))
/****** Object:  Table [dbo].[p_Task]    Script Date: 03/29/2017 15:45:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[p_Task](
    [TaskID] [uniqueidentifier] NOT NULL,
    [TaskName] [nvarchar](300) NULL,
    [TaskParam] [nvarchar](max) NULL,
    [CronExpressionString] [nvarchar](200) NULL,
    [AssemblyName] [nvarchar](150) NULL,
    [ClassName] [nvarchar](150) NULL,
    [Status] [int] NULL,
    [IsDelete] [int] NULL,
    [CreatedTime] [datetime] NULL,
    [ModifyTime] [datetime] NULL,
    [RecentRunTime] [datetime] NULL,
    [NextFireTime] [datetime] NULL,
    [CronRemark] [nvarchar](300) NULL,
    [Remark] [nvarchar](1000) NULL,
 CONSTRAINT [PK__p_Task__7C6949D12F10007B] PRIMARY KEY CLUSTERED 
(
    [TaskID] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'任务ID' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'p_Task', @level2type=N'COLUMN',@level2name=N'TaskID'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'任务名称' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'p_Task', @level2type=N'COLUMN',@level2name=N'TaskName'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'任务参数' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'p_Task', @level2type=N'COLUMN',@level2name=N'TaskParam'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'任务运行Cron表达式' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'p_Task', @level2type=N'COLUMN',@level2name=N'CronExpressionString'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'程序集名称' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'p_Task', @level2type=N'COLUMN',@level2name=N'AssemblyName'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'任务所在类包含命名空间' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'p_Task', @level2type=N'COLUMN',@level2name=N'ClassName'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'任务运行状态    1:运行 0:停止 -1 删除' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'p_Task', @level2type=N'COLUMN',@level2name=N'Status'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'创建时间' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'p_Task', @level2type=N'COLUMN',@level2name=N'CreatedTime'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'修改时间' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'p_Task', @level2type=N'COLUMN',@level2name=N'ModifyTime'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'最近运行时间' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'p_Task', @level2type=N'COLUMN',@level2name=N'RecentRunTime'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'下次运行时间' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'p_Task', @level2type=N'COLUMN',@level2name=N'NextFireTime'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'表达式中文说明' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'p_Task', @level2type=N'COLUMN',@level2name=N'CronRemark'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'备注' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'p_Task', @level2type=N'COLUMN',@level2name=N'Remark'
GO
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'任务表' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'p_Task'
GO
INSERT [dbo].[p_Task] ([TaskID], [TaskName], [TaskParam], [CronExpressionString], [AssemblyName], [ClassName], [Status], [IsDelete], [CreatedTime], [ModifyTime], [RecentRunTime], [NextFireTime], [CronRemark], [Remark]) VALUES (N'5fbaa648-d1e8-e511-b79d-54ee75868d11', N'自动增加Job', N'', N'0/10 * * * * ?', N'Weiz.TaskManager.TaskSet', N'Weiz.TaskManager.TaskSet.AutoAddJob', 1, 0, CAST(0x0000A5F300F9CD76 AS DateTime), CAST(0x0000A65F01268671 AS DateTime), CAST(0x0000A65F01268670 AS DateTime), CAST(0x0000A65F01269228 AS DateTime), N'每10秒运行一次,将后台添加的job 增加到quartz 服务中,请勿删除 ', NULL)
INSERT [dbo].[p_Task] ([TaskID], [TaskName], [TaskParam], [CronExpressionString], [AssemblyName], [ClassName], [Status], [IsDelete], [CreatedTime], [ModifyTime], [RecentRunTime], [NextFireTime], [CronRemark], [Remark]) VALUES (N'5fbaa648-d1e8-e511-b79d-54ee75868db0', N'取消超时订单', N'', N'0/20 * * * * ?', N'Weiz.TaskManager.TaskSet', N'Weiz.TaskManager.TaskSet.OrderCancel', 1, 0, CAST(0x0000A5F300F9CD76 AS DateTime), CAST(0x0000A65F01268671 AS DateTime), CAST(0x0000A65F01268670 AS DateTime), CAST(0x0000A65F01269228 AS DateTime), N'每10秒运行一次', NULL)
INSERT [dbo].[p_Task] ([TaskID], [TaskName], [TaskParam], [CronExpressionString], [AssemblyName], [ClassName], [Status], [IsDelete], [CreatedTime], [ModifyTime], [RecentRunTime], [NextFireTime], [CronRemark], [Remark]) VALUES (N'5fbaa648-d1e8-e511-b79d-54ee75868db1', N'测试任务,输出当前时间', N'', N'0/10 * * * * ?', N'Weiz.TaskManager.TaskSet', N'Weiz.TaskManager.TaskSet.TestJob', 1, 0, CAST(0x0000A5F300F9CD76 AS DateTime), CAST(0x0000A65F01268671 AS DateTime), CAST(0x0000A65F01268670 AS DateTime), CAST(0x0000A65F01269228 AS DateTime), N'每10秒运行一次', NULL)
/****** Object:  Table [dbo].[p_RunningLog]    Script Date: 03/29/2017 15:45:46 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[p_RunningLog](
    [Id] [bigint] IDENTITY(1,1) NOT NULL,
    [TaskID] [uniqueidentifier] NULL,
    [Remark] [varchar](500) NULL,
    [Description] [varchar](1000) NULL,
    [CreateTime] [datetime] NULL,
 CONSTRAINT [PK_p_TaskRunLog] PRIMARY KEY CLUSTERED 
(
    [Id] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO


SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[p_ErrorLog](
    [nId] [bigint] IDENTITY(1,1) NOT NULL,
    [dtDate] [datetime] NULL,
    [sThread] [varchar](100) NULL,
    [sLevel] [varchar](100) NULL,
    [sLogger] [varchar](3000) NULL,
    [sMessage] [varchar](8000) NULL,
    [sException] [varchar](8000) NULL,
    [sName] [varchar](200) NULL,
 CONSTRAINT [PK_p_ErrorLog] PRIMARY KEY CLUSTERED 
(
    [nId] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO


ALTER TABLE [dbo].[p_Task] ADD  CONSTRAINT [DF__p_Task__TaskID__30F848ED]  DEFAULT (newsequentialid()) FOR [TaskID]
GO


ALTER TABLE [dbo].[p_Task] ADD  CONSTRAINT [DF__p_Task__Status__31EC6D26]  DEFAULT ((0)) FOR [Status]
GO


ALTER TABLE [dbo].[p_Task] ADD  CONSTRAINT [DF__p_Task__CreatedO__32E0915F]  DEFAULT (getdate()) FOR [CreatedTime]
GO

详细说明

  1. ServiceBus服务,其实就是 Scheduler 的宿主,负责初始化,Scheduler ,以及相关的Jobs 的配置,然后由Scheduler实例负责调度执行相关的Jobs。

  2. TaskManager数据库,存储Jobs 的配置,同时记录job 的执行执行日志记录。

  3. HouTai_New管理后台,负责维护 Jobs 的配置信息和控制Jobs的状态。管理后台启动之后,会初始化远程ServiceBus服务忠的Scheduler 实例。并通过Scheduler 实例修改控制jobs 的状态。

  4. TaskManager.TaskUtility项目,封装所有quartz的操作。初始化Scheduler,读取修改jobs 等。


运行结果如图:

这里写图片描述


这里写图片描述


这里写图片描述


这里写图片描述


这里写图片描述

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 12
    评论
C# + SQL Server 本系统包括两类用户:学生、管理员。管理员可以通过系统来添加管理员信息、修改管理员信息、添加学生信息、修改学生信息;开设课程、查询课程、录入成绩、统计成绩 管理系统是一种通过计算机技术实现的用于组织、监控和控制各种活动的软件系统。这些系统通常被设计用来提高效率、减少错误、加强安全性,同时提供数据和信息支持。以下是一些常见类型的管理系统: 学校管理系统: 用于学校或教育机构的学生信息、教职员工信息、课程管理、成绩记录、考勤管理等。学校管理系统帮助提高学校的组织效率和信息管理水平。 人力资源管理系统(HRM): 用于处理组织内的人事信息,包括员工招聘、培训记录、薪资管理、绩效评估等。HRM系统有助于企业更有效地管理人力资源,提高员工的工作效率和满意度。 库存管理系统: 用于追踪和管理商品或原材料的库存。这种系统可以帮助企业避免库存过剩或不足的问题,提高供应链的效率。 客户关系管理系统(CRM): 用于管理与客户之间的关系,包括客户信息、沟通记录、销售机会跟踪等。CRM系统有助于企业更好地理解客户需求,提高客户满意度和保留率。 医院管理系统: 用于管理医院或医疗机构的患者信息、医生排班、药品库存等。这种系统可以提高医疗服务的质量和效率。 财务管理系统: 用于记录和管理组织的财务信息,包括会计凭证、财务报表、预算管理等。财务管理系统

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值