.net 任务调度平台

开源地址:http://git.oschina.net/chejiangyi/Dyd.BaseService.TaskManager

.net 任务调度平台

用于.net dll,exe的任务的挂载,任务的隔离,调度执行,访问权限控制,监控,管理,日志,错误预警,性能分析等。

1) 平台基于quartz.net进行任务调度功能开发,采用C#代码编写, 支持corn表达式和第三方自定义的corn表达式扩展。

2) 架构以插件形式开发,具有良好的功能扩展性,稳定性,简单性,便于第三方开发人员进一步进行功能扩展。

3) 支持多节点集群,便于集群服务器的资源有效分配,任务的相互隔离。

4) 支持邮件形式的错误预警,便于运维及时处理任务异常等。

开源相关群: .net 开源基础服务 238543768

任务demo

using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Dyd.BaseService.TaskManager.Demo
{
    /// <summary>
    /// 任务调度平台 任务插件的写法demo及说明
    /// </summary>
    public class DemoTask : XXF.BaseService.TaskManager.BaseDllTask
    {
        /// <summary>
        /// 任务调度平台根据发布的任务时间配置,定时回调运行方法
        /// 开发人员的任务插件必须要重载并该方法
        /// </summary>
        public override void Run()
        {
            /*
             * this.OpenOperator 用于任务调度平台提供给第三方使用的所有api接口封装
             */

            /*获取当前任务dll安装目录*/
            this.OpenOperator.GetTaskInstallDirectory();

            /*打印一条日志到任务调度平台,因为日志会存到平台数据库,所以日志要精简,对任务出错时有分析价值【注意:不要频繁打印无用的,非必要的,对分析无价值的日志信息】*/
            this.OpenOperator.Log("这里打印一条日志到任务调度平台");

            /*打印一条错误到任务调度平台,因为日志会存到平台数据库,所以日志要精简,对任务出错时有分析价值【注意:不要频繁打印无用的,非必要的,对分析无价值的日志信息】
             *后续任务会有增加优先级区分,根据任务的优先级,错误的出现频率等,错误日志会定期推送到开发者邮箱和短信*/
            this.OpenOperator.Error("这里打印一条错误日志到任务调度平台", new Exception("错误msg信息"));

            /*从数据库获取任务的临时数据,临时数据以jason的形式保存在数据库里面,便于任务上下文的恢复和信息传递【注意:不应用于"频繁的"存储"大量的"临时数据,会操作网络耗时和数据库性能差】*/
            var databasetempinfo = this.OpenOperator.GetDataBaseTempData<DemoTaskDatabaseTempInfo>();
            if (databasetempinfo == null)//若任务第一次运行,可能没有临时数据。当然也可以在发布任务的时候配置临时数据也可。
            {
                databasetempinfo = new DemoTaskDatabaseTempInfo();
                databasetempinfo.LastLogID = 0;
            }

            /*将任务的临时数据持久化到数据库中,临时数据以json的形式保存在数据库里面,便于任务上下文的恢复和信息传递【注意:不应用于"频繁的"存储"大量的"临时数据,会操作网络耗时和数据库性能差】
              若临时数据用于下一次使用,必须要执行此方法,否则下次无法获取【注意:执行此方法,当前临时数据有可能被重置为null,便于内存资源释放】*/
            this.OpenOperator.SaveDataBaseTempData(databasetempinfo);

            /*从本地安装目录中获取任务的临时数据,临时数据以jason的形式保存在本地,便于任务上下文的恢复和信息传递【注意:本地临时数据一般用于保存"大量的"临时数据】*/
            var localtempinfo = this.OpenOperator.GetLocalTempData<DemoTaskLocalTempInfo>();
            if (localtempinfo == null)//若任务第一次运行,可能没有临时数据。当然也可以在发布任务的时候上传临时数据json至安装压缩包中也可。
            {
                localtempinfo = new DemoTaskLocalTempInfo();
                localtempinfo.file = new byte[0];
            }

            /*将任务的临时数据持久化到本地安装目录中,临时数据以json的形式保存在本地安装目录里面,便于任务上下文的恢复和信息传递【注意:本地临时数据一般用于保存"大量的"临时数据】
              若临时数据用于下一次使用,必须要执行此方法,否则下次可能无法获取【注意:执行此方法,当前临时数据有可能被重置为null,便于内存资源释放】*/
            this.OpenOperator.SaveLocalTempData(localtempinfo);

            {
                string msg = "执行业务中...."+ this.AppConfig["sendmailhost"];
                Debug.WriteLine(msg);
                System.IO.File.AppendAllText(this.OpenOperator.GetTaskInstallDirectory()+"业务.txt", msg);
            }
        }
        /// <summary>
        /// 开发人员自测运行入口
        /// 需要将项目配置为->控制台应用程序,写好Program类和Main入口函数
        /// </summary>
        public override void TestRun()
        {
            /*测试环境下任务的配置信息需要手工填写,正式环境下需要配置在任务配置中心里面*/
            this.AppConfig = new XXF.BaseService.TaskManager.SystemRuntime.TaskAppConfigInfo();
            this.AppConfig.Add("sendmailhost", "smtp.163.com");
            this.AppConfig.Add("sendmailname", "[email protected]");
            this.AppConfig.Add("password", "******");

            base.TestRun();
        }
    }

    /// <summary>
    /// 任务调度平台之临时数据信息,用于任务上下文的信息传递。
    /// 将会以json形式保存在任务调度平台数据库中,便于下一次回调运行时恢复并使用。【注意:不应用于"频繁的"存储"大量的"临时数据,会操作网络耗时和数据库性能差】
    /// </summary>
    public class DemoTaskDatabaseTempInfo
    {
        public int LastLogID { get; set; }
    }

    /// <summary>
    /// 任务调度平台之临时数据信息,用于任务上下文的信息传递。
    /// 将会以json形式保存在任务调度平台本地安装文件夹中,便于下一次回调运行时恢复并使用。【注意:本地临时数据一般用于保存"大量的"临时数据】
    /// </summary>
    public class DemoTaskLocalTempInfo
    {
        public byte[] file { get; set; }
    }
}
   

web后端部分截图及安装

时间: 2024-10-26 11:32:44

.net 任务调度平台的相关文章

任务调度平台Cuckoo-Schedule

任务调度平台Cuckoo-Schedule 1         概述 1.1      平台概述 Cuckoo-Schedule是基于Quartz-Schedule的轻量级任务调度框架,具有易学习.易上手.开发高效稳定的特点.Demo地址:http://cuckoo.hellosr.com,测试用户:guest,密码:123456. Cuckoo-Schedule对调度模块与执行模块进行解耦,调度模块支持集部署.任务分组.任务依赖.权限管理.邮件告警.调度日志记录等功能,并提供WEB页面对任务进

.net 简单任务调度平台

.net 简单任务调度平台,用于.net dll,exe的任务的挂载,任务的隔离,调度执行,访问权限控制,监控,管理,日志,错误预警,性能分析等. 平台基于quartz.net进行任务调度功能开发,采用C#代码编写, 支持corn表达式和第三方自定义的corn表达式扩展. 架构以插件形式开发,具有良好的功能扩展性,稳定性,简单性,便于第三方开发人员进一步进行功能扩展. 支持多节点集群,便于集群服务器的资源有效分配,任务的相互隔离. 支持邮件形式的错误预警,便于运维及时处理任务异常等. (项目允许

分布式任务调度平台xxl-job的使用(java)

xxl-job是一个开源的任务调度平台(github地址https://github.com/xuxueli/xxl-job),且在分布式场景下有很好的支持性,可以对单个的任务单次执行,或者定时执行.在分布式场景下,可以选择不同的路由策略进行执行job,如指定第一个或最后一个执行器执行,轮询执行等等,十分的灵活,下面介绍下在java环境下如何对接xxl-job的平台. 一.调度中心的配置部署 xxl-job作为开源的项目,他支持多种语言的任务,但是其调度平台是由java语言编写,基于集群Quar

宜信开源微服务任务调度平台(SIA-TASK)

背景 无论是互联网应用或者企业级应用,都充斥着大量的批处理任务.常常需要一些任务调度系统帮助开发者解决问题.随着微服务化架构的逐步演进,单体架构逐渐演变为分布式.微服务架构.在此的背景下,很多原先的任务调度平台已经不能满足业务系统的需求.于是出现了一些基于分布式的任务调度平台.这些平台各有其特点,但各有不足之处,比如不支持任务编排.与业务高耦合.不支持跨平台等问题.非常不符合新一代微服务架构的需求,因此宜信公司开发了微服务任务调度平台(SIA-TASK). SIA是宜信公司基础开发平台Simpl

分布式任务调度平台SIA-TASK的架构设计与运行流程

一.分布式任务调度的背景 无论是互联网应用或者企业级应用,都充斥着大量的批处理任务.我们常常需要一些任务调度系统来帮助解决问题.随着微服务化架构的逐步演进,单体架构逐渐演变为分布式.微服务架构.在此背景下,很多原先的任务调度平台已经不能满足业务系统的需求,于是出现了一些基于分布式的任务调度平台. 1.1 分布式任务调度的演进 在实际业务开发过程中,很多时候我们无可避免地需要使用一些定时任务来解决问题.通常我们会有多种解决方案:使用 Crontab 或 SpringCron (当然这种情况可能机器

宜信开源|分布式任务调度平台SIA-TASK的架构设计与运行流程

一.分布式任务调度的背景 无论是互联网应用或者企业级应用,都充斥着大量的批处理任务.我们常常需要一些任务调度系统来帮助解决问题.随着微服务化架构的逐步演进,单体架构逐渐演变为分布式.微服务架构.在此背景下,很多原先的任务调度平台已经不能满足业务系统的需求,于是出现了一些基于分布式的任务调度平台. 1.1 分布式任务调度的演进 在实际业务开发过程中,很多时候我们无可避免地需要使用一些定时任务来解决问题.通常我们会有多种解决方案:使用 Crontab 或 SpringCron (当然这种情况可能机器

分布式任务调度平台XXL-JOB

为获得更好的阅读体验,请访问原文:传送门 一.分布式任务调度概述 什么是任务调度平台 任务调度是指基于给定的时间点,给定的时间间隔又或者给定执行次数自动的执行任务.我们可以思考一下在以下场景中,我们应该怎么实现: 支付系统每天凌晨 1 点,进行一天清算,每月 1 号进行上个月清算: 电商整点抢购,商品价格8点整开始优惠 12306 购票系统,超过 30 分钟没有成功支付订单的,进行回收处理 为什么需要任务调度平台 定时任务是程序员不可避免的话题,很多业务场景需要我们某一特定的时刻去做某件任务.一

宜信微服务任务调度平台建设实践|分享实录

本文主要围绕SIA平台展开,包括研发背景设计思路和技术架构,以及如何支持业务方. 内容来源:宜信技术学院第4期技术沙龙-线上直播|宜信微服务任务调度平台建设实践 主讲人:宜信高级架构师&开发平台负责人 梁鑫 导读:如今,无论是互联网应用还是企业级应用,都充斥着大量的批处理任务,常常需要一些任务调度系统帮助我们解决问题.随着微服务化架构的逐步演进,单体架构逐渐演变为分布式.微服务架构. 在此背景下,很多之前的任务调度平台已经不能满足业务系统的需求,于是出现了一些基于分布式的任务调度平台.这些平台各

分布式任务调度平台XXL-JOB搭建

分布式任务调度平台XXL-JOB,作者许雪里1.源码下载地址①.GitHub:https://github.com/xuxueli/xxl-job②.码云:https://gitee.com/xuxueli0323/xxl-job 2.文档地址①.中文文档:http://www.xuxueli.com/xxl-job/#/②.英文文档:http://www.xuxueli.com/xxl-job/en/#/ 3.源码结构通过上面给出的源码下载地址,我们将源码clone到IDEA中,如下:tabl