专栏首页.net core新时代开源任务管理平台TaskManagerV2.0介绍及升级说明

开源任务管理平台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 条评论
登录 后参与评论

相关文章

  • 数据字典生成工具之旅(2):数据字典生成工具及文档工具作用介绍

           上一篇介绍完了整个架构和功能,这一篇将更加详细介绍功能和操作,将会以实际例子帮助理解!(预告:下一篇正式进入实现原理讲解) 阅读目录 开始使用工具...

    用户1168362
  • webapi文档描述-swagger

      最近做的项目使用mvc+webapi,采取前后端分离的方式,后台提供API接口给前端开发人员。这个过程中遇到一个问题后台开发人员怎么提供接口说明文档给前端开...

    用户1168362
  • nginx+iis实现负载均衡

      最近在研究分布式系统架构方面的知识,包括负载均衡,数据库读写分离,分布式缓存redis等。本篇先从负载均衡服务架构入手,关于负载均衡百度百科的定义如下:负载...

    用户1168362
  • java学习笔记(基础篇)—java数组

    ​ 数组的长度一旦定义了,就无法修改。所以需要arraycopy()来重新分配一个新的 数组(扩容),然后将其内容拷贝进去。

    chlinlearn
  • 理解LSTM网络

    人类不会每时每刻都从头开始重新思考,就像你阅读这篇文章时,你会根据对上文的理解来推断每个词语的意思,而不是抛弃一切从零开始思考。换而言之,你的思想具有持久性。

    人工智能资讯小编
  • 关键题问

    zd123
  • Spring boot 2.0 mongoTemplate 操作范例

    中国广东省深圳市望海路半岛城邦三期 518067 +86 13113668890 <netkiller@msn.com>

    netkiller
  • 五分钟看懂一道中等难度的算法题

    今天分享的题目来源于 LeetCode 第 450 号问题:删除二叉搜索树中的节点。虽然它的难度是 中等,但实际上很好理解,请往下看!

    五分钟学算法
  • AIX 5L学习总结3

    1.-bash-3.00$ prtconf | more //查看配置信息可以看到大部分配置信息。

    用户2398817
  • 小程序做电商的六大优势,看了你就知道为什么必须做小程序了

    最近小程序甚是火爆,许多电商朋友都坐不住了,也想加入进来。但是这几个关于小程序却在心里:

    中微信通

扫码关注云+社区

领取腾讯云代金券

玩转腾讯云 有奖征文活动