上一篇开源任务管理平台TaskManager介绍发布后,有网友联系我看看能不能做个后台管理界面,方便管理系统中所有的任务。由于时间和技术问题1.0版本的时候,新增了一个3分钟读取配置文件动态修改任务的功能,不过总体来说还是不直观,操作不便捷。刚好最近接触到了Owin,可以实现自己的宿主程序运行Web站点,无需IIS中即可运行后台Web,这里演示的是点击控制台程序运行的结果。最近利用闲暇时间使用该技术实现了后台管理程序,也就是本文要说的TaskManagerV2.0版本。对TaskManagerV1.0版本不了解的可以先看下。最终实现的界面如下,也可以打开这个地址http://tm.myscloud.cn在线浏览。还是之前的老规矩文章末尾会提供程序和源代码下载地址。

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<DebuggableAttribute>();            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.其它可自行摸索

回到顶部

总结

本篇要介绍的内容到此结束了,下面到了放出源代码的时间了。敬请期待下一篇!

   关于如何下载下面SVN代码,我这里稍微介绍一下。这个地址不是在浏览器里面打开的(如果想在浏览器里面预览可以访问:http://code.taobao.org/p/TaskManagerPub/src/Branch/),请使用SVN客户端工具TortoiseSVN->SVN Checkout->输入下面的地址进行下载。

TaskManagerSVN地址:http://code.taobao.org/svn/TaskManagerPub/Branch   使用svn checkout指令进行下载。

  GitHub地址:由于SVN地址不稳定,很多网友下载不下来,所以决定将代码托管到GitHub   https://github.com/CrazyJson/TaskManager

相关文章

  • 开源任务管理平台TaskManager介绍

  • Nancy Web框架

  • NancyFx系列之 Hello World

  • Nancy之基于Nancy.Hosting.Aspnet 的小Demo

  • NancyFx系列之 Hello World

原文地址:http://www.cnblogs.com/yanweidie/p/5297593.html


.NET社区新闻,深度好文,微信中搜索dotNET跨平台或扫描二维码关注

赞赏

人赞赏

使用Nancy打造TaskManager2.0管理系统相关推荐

  1. 霍比特E姐有约|Exploit Network 如何打造 Web3.0 匿名支付协议

    4月20日,第19期「霍比特E姐有约」,进行了主题为「Exploit Network 如何打造Web3.0匿名支付协议」的线上AMA,本期AMA由霍比特HBTC全球商务VP Elsa Qiu主持,邀请 ...

  2. 在“互联网+”时代下,专为餐饮行业量身打造的智能管理系统!

    传统的餐厅经营,日常运营中存在人力资本.物料损耗.设施设备.广告宣传推广等资金的投入.特别是在设施设备,前期需要投入大量资金,且后期还需进行维护,费用不小.传统的餐饮管理模式,除了在各种服务上存在体验 ...

  3. 互联网+智能停车4.0管理系统,只为停车更方便

    在汽车普及率迅猛提高.全国城市普遍遭遇"停车难"之际,已有物联网企业进军停车领域求解难题.不久的将来,车主通过手机APP寻找空闲车位将成为常态,车位与车辆对接效率大大提高,其间将衍 ...

  4. php wiki 知识库,用 DokuWiki 打造个人知识管理系统 - Dokuwiki 中文教程

    因为要学的东西很多,因此这段时间一直在考虑建立一个个人知识管理系统,以便更好的梳理自已的学习内容,同时也便于分享,所以最终决定用 Wiki 的形式来打造这一项目. # 为什么选择 Wiki 来进行知识 ...

  5. 妙记多「我的主页」升级,日历聚合任务待办,为你打造个人时间管理系统⏰

    我们应该如何处理"日程"和"待办"的关系? 日程和待办的区别与联系 从字面意义上来理解,日程是这一天的安排,待办是需要去完成的事情,日程与待办本质上是一种相互包 ...

  6. 低代码平台如何打造个性化督办管理系统

    编者按:本文介绍了督办管理系统的概念,以粤运集团案例为引,分析了个性化督办管理系统和传统督办管理系统的区别,并进一步指出低代码平台在实现个性化督办管理系统方面的优势以及如何实践. 概要: (1)督办管 ...

  7. 汽车之家运维团队倾力打造的配置管理系统AutoCMS

    管理 存储 Hadoop 服务器 运维 Puppet 作者介绍 王显宝,汽车之家运维团队成员,主要负责AutoCMS的开发工作和缓存平台的运维工作,擅长python自动化运维,分布式缓存和分布式文件系 ...

  8. AMAZINGPANDAVERSE打造2.0元宇宙生态的能量杠杆

    前言:熊猫是当之无愧的中国文化符号,国际传播中的熊猫形象随之发展演化,不断创新的熊猫形象也传递着中国新形象,随着时代发展,熊猫形象还可以在玩具模型.服装服饰.文学形象.动漫角色.元宇宙空间等领域一展风 ...

  9. 智能化打造智慧物流管理系统详情分析

    近些年,国内物流业在货运运输自动化.运营和管理方法高效化等层面获得显著成果.以物联网技术.互联网大数据.云计算技术.人工智能等新一代信息内容技术为支撑的智慧物流迅猛发展,也是明显提升了国内物流制造行业 ...

最新文章

  1. 被追捧为“圣杯”的深度强化学习已走进死胡同
  2. 暂时放在首页,因为需要大家帮忙!!
  3. Nginx - 日志格式及输出
  4. 爬虫用mysql存储还是mongodb_【面试题】Mongodb和MySQL存储爬虫数据的特点是什么?...
  5. python清除数据库表命令_Python PostgreSQL-删除表
  6. 操作指针的条件和多级指针
  7. urllib urllib2 自己用
  8. win10家庭版远程连接 要求的函数不受支持
  9. 信息安全期末复习整理
  10. 一个开源的音频分离深度学习项目
  11. solaris服务器系统,服务器配置:快速安装solaris-10-x86操作系统
  12. python下载电影天堂_Python爬虫之《电影天堂》电影详情+下载地址爬取
  13. art-高光贴图制作
  14. [数图] 实验四 图像的滤波处理与图像空间变换
  15. UVA - 12304 2D Geometry 110 in 1!
  16. 豆瓣评分9.6,推荐一本人工智能入门书籍《21天学通Python》
  17. 二叉树的四种遍历方式(前序遍历、中序遍历、后序遍历、测层序遍历)
  18. 为什么大家要支持微信和支付宝
  19. 利用selenium和python 爬虫网站代码
  20. 云服务器文件777权限,云服务器目录权限设置

热门文章

  1. Delphi 与 DirectX 之 DelphiX(46): TDIB.DoAntiAlias;
  2. 如何使用 .NET Core 安全地加/解密文件
  3. 如何判断当前请求的API类型
  4. 删除未使用的引用 | Visual Studio 2019(16.10)新功能试用
  5. 人气TOP|当红炸子鸡「小明机器人」,出道走花路啦
  6. 毕业二十年,为什么人和人之间的差距那么大?
  7. 使用 C# 9 的records作为强类型ID - 初次使用
  8. C#实现乞丐版IOC容器
  9. 使用kibana可视化报表实时监控你的应用程序
  10. 我的『MVP.Blazor』快速创建与部署