开源任务管理平台TaskManagerV2.0介绍及升级说明

  上一篇开源任务管理平台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.其它可自行摸索

回到顶部

总结

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

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

      体验工具下载地址:任务管理框架 V2.0

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏zhangdd.com

升级Windows 10常见问题解决方案汇总

微软已经正式向全球推送了Windows 10操作系统,与以往Windows产品不同的是,微软对windows7和Windows 8.1 的用户施行免费升级的策略...

542
来自专栏前端儿

npm包与gem包--在线&离线安装

NPM,即为Node的包管理工具,官网为 https://www.npmjs.com/,我们可以在站内搜索所需要的NPM包,了解相关的使用规则

842
来自专栏云计算教程系列

如何使用Shiny Server部署R应用程序

Shiny是R编程语言的库,允许您在本机R中创建交互式Web应用程序,而无需使用HTML,CSS或JavaScript等Web技术。将Shiny应用程序部署到W...

784
来自专栏黑白安全

蚁逅v1.0_你从所未见的XSS平台

 集在线WEBTOOLS、BLOG以及一款基于socket.io开发的全新XSS平台

1336
来自专栏菩提树下的杨过

用winform应用程序登录网站的解决方案

用winform应用程序登录网站的解决方案 背景: 网站使用Membership机制来验证用户 要求: c/s应用程序要用网站上的用户名和密码登录,同时...

1978
来自专栏云计算教程系列

为你的CVM设置SSH密钥吧!

认证是用于证明您有权执行某项操作的信息,例如登录到系统。认证通道是身份验证系统向用户传递因素或要求用户回复的方式。通俗的来讲,密码和安全令牌就是身份验证证明,计...

902
来自专栏FH云彩

GetFaviconAPI(获取站点Favicon)

563
来自专栏Python中文社区

一篇文章完全理解virtualenv

專 欄 ❈ 夏轩,Python中文社区专栏作者。 博客:http://blog.csdn.net/u012734441 ❈ 1.virtualenv介绍 2...

2006
来自专栏区块链

Web安全常见漏洞修复建议

看各大发布漏洞的平台,发现众多挖洞大神精彩的漏洞发掘过程,但在修复建议或者修复方案处,给出千奇百怪神一般的回复,故而总结一下修复建议(才疏学浅不算太全敬请谅解,...

1926
来自专栏FreeBuf

如何对iOS App进行打补丁和重新签名

有没有想过在非越狱设备上运行修改后的iOS二进制文件?比如,你可以使用该技术插装app,以进行动态分析。又或者你需要进行GPS欺骗,从而可以在锁区玩Pokemo...

2168

扫码关注云+社区