千家信息网

如何使用Nancy打造TaskManager2.0管理系统

发表于:2025-01-26 作者:千家信息网编辑
千家信息网最后更新 2025年01月26日,本篇文章给大家分享的是有关如何使用Nancy打造TaskManager2.0管理系统,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。有网友
千家信息网最后更新 2025年01月26日如何使用Nancy打造TaskManager2.0管理系统

本篇文章给大家分享的是有关如何使用Nancy打造TaskManager2.0管理系统,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

有网友联系我看看能不能做个后台管理界面,方便管理系统中所有的任务。由于时间和技术问题1.0版本的时候,新增了一个3分钟读取配置文件动态修改任务的功能,不过总体来说还是不直观,操作不便捷。刚好最近接触到了Owin,可以实现自己的宿主程序运行Web站点,无需IIS中即可运行后台Web,这里演示的是点击控制台程序运行的结果。最近利用闲暇时间使用该技术实现了后台管理程序,也就是小编要说的TaskManagerV2.0版本。

V2.0升级说明

  2.0相对于之前的版本最大变化有四点

1.后台管理程序

最明显的区别提供了后台管理程序,用户启动TaskManager时,即可通过浏览器进入后台管理系统轻松的配置管理所有任务,方便的查看任务最近运行时间和下一次运行时间。当然后台管理程序站点地址也是可以由用户进行配置的,后面会进行讲解。

2.多样化宿主程序

V1.0基于Window服务实现,V2.0可以使用控制台程序,Windows服务 或者传统Web程序来重载。

  3.任务存储方式

系统所有任务存储在数据库中,不再采用1.0版本存储在xml配置文件中。

4.自动以系统管理员方式启动

在程序启动前会先判断当前是否以管理员方式运行,如果不是则会重启以管理员方式运行

最重要的变化,Web管理站点无需用户部署在iis中,启动控制台程序或者服务时会自动启动

回到顶部

Cron表达式

Cron表达式是用来指定任务执行频率的,前面我已经写了一篇Quartz Cron表达式 在线生成器的文章,大家可以直接拿来使用。

回到顶部

开源TaskManagerV2.0实现原理

TaskManager是基于Quartz.NET和Nancy的一款开源任务管理系统,可以使用Window服务或者控制台程序来承载,Web后台实现采用Nancy Host实现,下一篇将介绍一下这个技术。

项目结构介绍:

后台管理站点完全独立于window服务和控制台程序,松耦合。下面看下这两个承载服务是怎么启动后台站点的。

window服务

protected override void OnStart(string[] args)        {            DebuggableAttribute att = System.Reflection.Assembly.GetExecutingAssembly().GetCustomAttribute();            if (att.IsJITTrackingEnabled)            {                //Debug模式才让线程停止10s,方便附加到进程调试Thread.Sleep(10000);            }            //配置信息读取            ConfigInit.InitConfig();            QuartzHelper.InitScheduler();            QuartzHelper.StartScheduler();            // 保持web服务运行  ThreadPool.QueueUserWorkItem((o) =>            {                //启动站点                Startup.Start(SysConfig.WebPort);            });        }

在window服务启动时,调用了Web程序提供的启动接口。

控制台程序

static void Main(string[] args)        {            AdminRun.Run();            ConfigInit.InitConfig();            QuartzHelper.InitScheduler();            QuartzHelper.StartScheduler();            try            {                //启动站点using (NancyHost host = Startup.Start(SysConfig.WebPort))                {                    //调用系统默认的浏览器   Process.Start("http://127.0.0.1:9000");                    Console.WriteLine("系统监听站点地址:{0}", "http://127.0.0.1:9000");                    Console.WriteLine("程序已启动,按任意键退出");                    Console.ReadLine();                }            }            catch (Exception ex)            {                Console.WriteLine(ex.Message);            }            Console.Read();        }

使用介绍

  初次使用需要新建数据库,执行发布程序下的SQL合并脚本,修改config配置文件中的数据库连接。

使用Windows服务做为承载器

那么我们只需要知道怎么安装Windows服务,也就能使用该平台了。这里考虑到很多人不知道怎么安装卸载Windows服务,所以提供了我之前写的一个小工具Windows服务安装卸载。源代码也一起放在了TaskManager里面。

1.运行Windows安装卸载工具

2.选择TaskManger.exe-》安装-》运行

运行成功以后可以在系统管理-》服务 里面找到"定时任务管服务"

运行成功后会生成Logs文件夹,目前系统会分任务记录执行日志,方便使用者查看各个任务的执行情况

3.浏览器打开http://本机IP:9000 进入后台

使用控制台程序做为承载器

点击运行Ywdsoft.Test.exe

后台管理程序使用介绍

1.自定义站点端口

修改Config.config文件,默认端口为9000

2.编辑界面Cron表达式如何填写

这里也替大家考虑到了,可以使用在线Cron生成器来生成,地址http://tool.myscloud.cn,也可以使用源代码里面提供的Cron自己部署站点使用。

3.其它可自行摸索

以上就是如何使用Nancy打造TaskManager2.0管理系统,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注行业资讯频道。

0