在好例子网,分享、交流、成长!
您当前所在位置:首页Others 开发实例一般编程问题 → ScheduleMaster分布式任务调度系统介绍

ScheduleMaster分布式任务调度系统介绍

一般编程问题

下载此实例
  • 开发语言:Others
  • 实例大小:7.69M
  • 下载次数:1
  • 浏览次数:53
  • 发布时间:2024-03-26
  • 实例类别:一般编程问题
  • 发 布 人:chenxiaolan
  • 文件格式:.zip
  • 所需积分:2
 相关标签:

实例介绍

【实例简介】
ScheduleMaster是一款高效的分布式任务调度系统,采用.NET Core 3.1技术栈进行开发,旨在为开发者提供一个稳定、灵活的任务管理平台。该系统不仅具备任务动态管理、数据安全性、自定义参数设置等核心功能,还支持跨平台多节点部署,确保了高可用性。

主要特性包括:
  • 简易的Web UI操作
  • 任务动态管理: 创建、启动、停止、暂停、恢复、删除等
  • 高可用支持,跨平台多节点部署
  • 数据安全性,避免多实例并发调度问题
  • 支持自定义参数设置和配置文件热更新
  • 运行异常邮件告警、任务依赖自动触发等高级功能
  • 插件式开发,任务运行环境隔离
  • 全链路日志系统,轻松掌控运行轨迹
  • 用户访问控制与精细化权限管理
  • 调度报表统计与资源监控
  • 支持异常策略配置如失败重试、超时控制等
技术栈涵盖ASP.NET Core3.1、EntityFramework Core3.0、Mysql5.7等,支持多数据库类型和接入redis缓存,为用户提供了强大的后端支持。

如何使用:
用户需要准备好Visual Studio 2019、.NET Core3.1 SDK等环境,通过配置文件方式启动。系统支持在Windows、Linux(Centos)以及Docker中运行,为不同需求的用户提供了灵活的部署选项。

ScheduleMaster致力于提供一个全面、可靠的任务调度解决方案,无论是数据安全性、高可用性还是用户权限管理,都能满足企业级应用的需求。

【实例截图】

from clipboard


from clipboard


from clipboard

【核心代码】
文件清单
└── ScheduleMasterCore-8795d00a1b0e7ebdedc9c3def41f2aac7dc793d6
    ├── azure-pipelines.yml
    ├── docs
    │   ├── 1-动态参数启动.md
    │   ├── 1-部署方式介绍.md
    │   ├── 1-配置文件启动.md
    │   ├── 2-任务管理.md
    │   ├── 2-使用API接入任务.md
    │   ├── 2-参数配置.md
    │   ├── 2-延时任务.md
    │   ├── 2-日志跟踪.md
    │   ├── 2-编写业务代码.md
    │   ├── 2-节点管理.md
    │   ├── 3-任务启动流程.md
    │   ├── 3-任务执行流程.md
    │   ├── 3-延时任务原理.md
    │   ├── 3-节点注册流程.md
    │   ├── images
    │   │   ├── architecture.png
    │   │   ├── icon.png
    │   │   └── logo.png
    │   └── wiki开始页.md
    ├── LICENSE
    ├── publish.ps1
    ├── publish.sh
    ├── README.md
    └── src
        ├── db
        │   ├── add_index.sql
        │   └── db.sql
        └── ScheduleMasterCore
            ├── Hos.ScheduleMaster.Base
            │   ├── Dto
            │   │   └── ScheduleLog.cs
            │   ├── Hos.ScheduleMaster.Base.csproj
            │   ├── Hos.ScheduleMaster.Base.nuspec
            │   ├── nuget.exe
            │   ├── RunConflictException.cs
            │   ├── TaskBase.cs
            │   └── TaskContext.cs
            ├── Hos.ScheduleMaster.Core
            │   ├── AutowiredAttribute.cs
            │   ├── Common
            │   │   ├── BufferQueue.cs
            │   │   ├── EnumHelper.cs
            │   │   ├── Extensions.cs
            │   │   ├── ListPager.cs
            │   │   ├── MailKitHelper.cs
            │   │   ├── ObjectMapper.cs
            │   │   ├── PredicateExtensions.cs
            │   │   └── SecurityHelper.cs
            │   ├── ConfigurationCache.cs
            │   ├── Dto
            │   │   ├── ScheduleDelayedInfo.cs
            │   │   └── ScheduleInfo.cs
            │   ├── EntityFramework
            │   │   ├── DbContext.cs
            │   │   ├── DbContext.tt
            │   │   ├── EntityFrameworkContextExtensions.cs
            │   │   └── ModelBuilderExtensions.cs
            │   ├── Hos.ScheduleMaster.Core.csproj
            │   ├── Interface
            │   │   ├── IAccountService.cs
            │   │   ├── IDelayedTaskService.cs
            │   │   ├── INodeService.cs
            │   │   ├── IScheduleService.cs
            │   │   └── ISystemService.cs
            │   ├── Log
            │   │   ├── LogHelper.cs
            │   │   └── LogManager.cs
            │   ├── Migrations
            │   │   ├── 20200405073814_http.cs
            │   │   ├── 20200405073814_http.Designer.cs
            │   │   ├── 20200411091721_update.cs
            │   │   ├── 20200411091721_update.Designer.cs
            │   │   ├── 20200515024401_delaytask.cs
            │   │   ├── 20200515024401_delaytask.Designer.cs
            │   │   ├── 20200622035045_tracessummary.cs
            │   │   ├── 20200622035045_tracessummary.Designer.cs
            │   │   └── SmDbContextModelSnapshot.cs
            │   ├── Models
            │   │   ├── IEntity.cs
            │   │   ├── ScheduleDelayedEntity.cs
            │   │   ├── ScheduleEntity.cs
            │   │   ├── ScheduleExecutorEntity.cs
            │   │   ├── ScheduleHttpOptionEntity.cs
            │   │   ├── ScheduleKeeperEntity.cs
            │   │   ├── ScheduleLockEntity.cs
            │   │   ├── ScheduleReferenceEntity.cs
            │   │   ├── ScheduleTraceEntity.cs
            │   │   ├── ServerNodeEntity.cs
            │   │   ├── SystemConfigEntity.cs
            │   │   ├── SystemLogEntity.cs
            │   │   ├── SystemUserEntity.cs
            │   │   └── TraceStatisticsEntity.cs
            │   ├── Repository
            │   │   ├── BaseRepository.cs
            │   │   ├── IUnitOfWork.cs
            │   │   ├── RepositoryFactory.cs
            │   │   └── RepositoryFactory.tt
            │   ├── ScheduleContext.cs
            │   ├── ServiceMapAttribute.cs
            │   ├── ServiceProviderWrapper.cs
            │   ├── ServiceResponseMessage.cs
            │   └── Services
            │       ├── AccountService.cs
            │       ├── BaseService.cs
            │       ├── DelayedTaskService.cs
            │       ├── NodeService.cs
            │       ├── RemoteCaller
            │       │   ├── DelayedTaskServiceClient.cs
            │       │   ├── ScheduleServiceClient.cs
            │       │   ├── ServerClient.cs
            │       │   └── WorkerDispatcher.cs
            │       ├── ScheduleService.cs
            │       └── SystemService.cs
            ├── Hos.ScheduleMaster.Demo
            │   ├── CustomConfigFile.cs
            │   ├── CustomParams.cs
            │   ├── ExceptionNotify.cs
            │   ├── Hos.ScheduleMaster.Demo.csproj
            │   ├── myconfig.json
            │   ├── Simple.cs
            │   ├── TaskCancel.cs
            │   ├── TaskConflict.cs
            │   ├── TaskRef.cs
            │   └── TaskUseDI.cs
            ├── Hos.ScheduleMaster.QuartzHost
            │   ├── appsettings.Development.json
            │   ├── appsettings.json
            │   ├── AppStart
            │   │   ├── AppLifetimeHostedService.cs
            │   │   ├── BackgroundTimerHostedService.cs
            │   │   └── TaskClearJob.cs
            │   ├── Common
            │   │   ├── AssemblyHelper.cs
            │   │   ├── HosScheduleFactory.cs
            │   │   ├── PluginLoadContext.cs
            │   │   ├── QuartzManager.cs
            │   │   ├── RootJob.cs
            │   │   └── RunTracer.cs
            │   ├── Controllers
            │   │   ├── DelayedTaskController.cs
            │   │   ├── QuartzController.cs
            │   │   └── ServerController.cs
            │   ├── DelayedTask
            │   │   ├── DelayPlanManager.cs
            │   │   └── DelayQueue.cs
            │   ├── Dockerfile
            │   ├── Filters
            │   │   ├── ApiValidationFilter.cs
            │   │   └── GlobalExceptionFilter.cs
            │   ├── HosLock
            │   │   ├── DatabaseLock.cs
            │   │   └── IHosLock.cs
            │   ├── HosSchedule
            │   │   ├── AssemblySchedule.cs
            │   │   ├── HttpSchedule.cs
            │   │   └── IHosSchedule.cs
            │   ├── Hos.ScheduleMaster.QuartzHost.csproj
            │   ├── Program.cs
            │   ├── RunnableJob
            │   │   ├── AssemblyJob.cs
            │   │   └── HttpJob.cs
            │   ├── Startup.cs
            │   └── wwwroot
            │       └── index.html
            ├── Hos.ScheduleMaster.Web
            │   ├── ApiControllers
            │   │   ├── ApiController.cs
            │   │   ├── DelayTaskController.cs
            │   │   └── TaskController.cs
            │   ├── appsettings.Development.json
            │   ├── appsettings.json
            │   ├── AppStart
            │   │   ├── AppLifetimeHostedService.cs
            │   │   ├── NodeRegistry.cs
            │   │   └── SystemSchedulerRegistry.cs
            │   ├── Controllers
            │   │   ├── AccountController.cs
            │   │   ├── AdminController.cs
            │   │   ├── ConsoleController.cs
            │   │   ├── DelayedTaskController.cs
            │   │   ├── LoginController.cs
            │   │   ├── ScheduleController.cs
            │   │   ├── StaticController.cs
            │   │   └── SystemController.cs
            │   ├── Dockerfile
            │   ├── Extension
            │   │   ├── AppExtensions.cs
            │   │   ├── DateTimeConverter.cs
            │   │   ├── HosControllerActivator.cs
            │   │   ├── JavaScriptResult.cs
            │   │   └── JsonNetResult.cs
            │   ├── Filters
            │   │   ├── AccessControlFilter.cs
            │   │   ├── AjaxRequestOnlyAttribute.cs
            │   │   └── GlobalExceptionFilter.cs
            │   ├── Hos.ScheduleMaster.Web.csproj
            │   ├── Program.cs
            │   ├── Startup.cs
            │   ├── todolist.md
            │   ├── Views
            │   │   ├── Account
            │   │   │   ├── Edit.cshtml
            │   │   │   └── Index.cshtml
            │   │   ├── Console
            │   │   │   ├── Home.cshtml
            │   │   │   └── Index.cshtml
            │   │   ├── DelayedTask
            │   │   │   ├── Create.cshtml
            │   │   │   ├── Detail.cshtml
            │   │   │   └── Index.cshtml
            │   │   ├── Login
            │   │   │   └── Index.cshtml
            │   │   ├── Schedule
            │   │   │   ├── Create.cshtml
            │   │   │   ├── Detail.cshtml
            │   │   │   ├── Edit.cshtml
            │   │   │   ├── Index.cshtml
            │   │   │   └── TraceLog.cshtml
            │   │   ├── Shared
            │   │   │   ├── _Layout.cshtml
            │   │   │   └── _ValidationScriptsPartial.cshtml
            │   │   ├── Static
            │   │   │   └── Page404.cshtml
            │   │   ├── System
            │   │   │   ├── ClearLog.cshtml
            │   │   │   ├── Config.cshtml
            │   │   │   ├── Log.cshtml
            │   │   │   ├── Node.cshtml
            │   │   │   └── NodeEdit.cshtml
            │   │   ├── _ViewImports.cshtml
            │   │   └── _ViewStart.cshtml
            │   └── wwwroot
            │       ├── assets
            │       │   ├── css
            │       │   │   ├── 4095-rtl.min.css
            │       │   │   ├── animate.min.css
            │       │   │   ├── beyond.min.css
            │       │   │   ├── beyond-rtl.min.css
            │       │   │   ├── bootstrap.min.css
            │       │   │   ├── bootstrap-rtl.min.css
            │       │   │   ├── dataTables.bootstrap.css
            │       │   │   ├── demo.min.css
            │       │   │   ├── font-awesome.min.css
            │       │   │   ├── skins
            │       │   │   │   ├── azure.min.css
            │       │   │   │   ├── black.min.css
            │       │   │   │   ├── blue.min.css
            │       │   │   │   ├── darkblue.min.css
            │       │   │   │   ├── darkred.min.css
            │       │   │   │   ├── deepblue.min.css
            │       │   │   │   ├── gray.min.css
            │       │   │   │   ├── green.min.css
            │       │   │   │   ├── orange.min.css
            │       │   │   │   ├── pink.min.css
            │       │   │   │   ├── purple.min.css
            │       │   │   │   └── teal.min.css
            │       │   │   ├── toastr.css
            │       │   │   ├── typicons.min.css
            │       │   │   └── weather-icons.min.css
            │       │   ├── fonts
            │       │   │   ├── fontawesome-webfont.eot
            │       │   │   ├── fontawesome-webfont.svg
            │       │   │   ├── fontawesome-webfont.ttf
            │       │   │   ├── fontawesome-webfont.woff
            │       │   │   ├── glyphicons-halflings-regular.eot
            │       │   │   ├── glyphicons-halflings-regular.svg
            │       │   │   ├── glyphicons-halflings-regular.ttf
            │       │   │   ├── glyphicons-halflings-regular.woff
            │       │   │   ├── typicons.eot
            │       │   │   ├── typicons.svg
            │       │   │   ├── typicons.ttf
            │       │   │   ├── typicons.woff
            │       │   │   ├── weathericons-regular-webfont.eot
            │       │   │   ├── weathericons-regular-webfont.svg
            │       │   │   ├── weathericons-regular-webfont.ttf
            │       │   │   └── weathericons-regular-webfont.woff
            │       │   ├── img
            │       │   │   ├── attach-blue.png
            │       │   │   ├── attach-green.png
            │       │   │   ├── attach-red.png
            │       │   │   ├── attach-yellow.png
            │       │   │   ├── avatars
            │       │   │   │   └── adam-jansen.jpg
            │       │   │   ├── icon.png
            │       │   │   ├── jquery.minicolors.png
            │       │   │   ├── logo-black.png
            │       │   │   ├── logo-black_xs.png
            │       │   │   ├── logo-white.png
            │       │   │   ├── sort_asc_disabled.png
            │       │   │   ├── sort_asc.png
            │       │   │   ├── sort_both.png
            │       │   │   ├── sort_desc_disabled.png
            │       │   │   ├── sort_desc.png
            │       │   │   └── temp1.png
            │       │   └── js
            │       │       ├── beyond.js
            │       │       ├── beyond.min.js
            │       │       ├── bootbox
            │       │       │   └── bootbox.js
            │       │       ├── bootstrap.min.js
            │       │       ├── bootstrap-table
            │       │       │   ├── bootstrap-table.min.css
            │       │       │   ├── bootstrap-table.min.js
            │       │       │   └── bootstrap-table-zh-CN.min.js
            │       │       ├── charts
            │       │       │   ├── easypiechart
            │       │       │   │   ├── easypiechart-init.js
            │       │       │   │   └── jquery.easypiechart.js
            │       │       │   └── flot
            │       │       │       ├── flot-init.js
            │       │       │       ├── jquery.flot.crosshair.js
            │       │       │       ├── jquery.flot.js
            │       │       │       ├── jquery.flot.orderBars.js
            │       │       │       ├── jquery.flot.pie.js
            │       │       │       ├── jquery.flot.resize.js
            │       │       │       ├── jquery.flot.selection.js
            │       │       │       ├── jquery.flot.stack.js
            │       │       │       ├── jquery.flot.time.js
            │       │       │       └── jquery.flot.tooltip.js
            │       │       ├── jquery-2.0.3.min.js
            │       │       ├── jquery-ui-1.10.4.custom.js
            │       │       ├── laydate5.0.9
            │       │       │   ├── laydate.js
            │       │       │   └── theme
            │       │       │       └── default
            │       │       │           ├── font
            │       │       │           │   ├── iconfont.eot
            │       │       │           │   ├── iconfont.svg
            │       │       │           │   ├── iconfont.ttf
            │       │       │           │   └── iconfont.woff
            │       │       │           └── laydate.css
            │       │       ├── nestable
            │       │       │   └── jquery.nestable.min.js
            │       │       ├── select2
            │       │       │   └── select2.js
            │       │       ├── skins.min.js
            │       │       ├── tagsinput
            │       │       │   └── bootstrap-tagsinput.js
            │       │       └── toastr
            │       │           └── toastr.js
            │       ├── css
            │       │   └── Huploadify.css
            │       ├── favicon.ico
            │       ├── images
            │       │   ├── avatar1.jpg
            │       │   ├── avatar2.jpg
            │       │   ├── icon.png
            │       │   ├── login-bg.jpg
            │       │   ├── logo-black.png
            │       │   ├── logo-black_xs.png
            │       │   └── logo-white.png
            │       ├── js
            │       │   ├── hos.ui.ctrl.js
            │       │   ├── hos.ui.ext.js
            │       │   ├── hos.ui.util.js
            │       │   ├── jquery.form.js
            │       │   ├── jquery.Huploadify.js
            │       │   ├── jquery.unobtrusive-ajax.js
            │       │   ├── jquery.validate.min.js
            │       │   ├── skins.min.js
            │       │   └── template-web.js
            │       ├── lib
            │       │   ├── beyondadmin.zip
            │       │   ├── bootstrap
            │       │   │   ├── dist
            │       │   │   │   ├── css
            │       │   │   │   │   ├── bootstrap.css
            │       │   │   │   │   ├── bootstrap.css.map
            │       │   │   │   │   ├── bootstrap-grid.css
            │       │   │   │   │   ├── bootstrap-grid.css.map
            │       │   │   │   │   ├── bootstrap-grid.min.css
            │       │   │   │   │   ├── bootstrap-grid.min.css.map
            │       │   │   │   │   ├── bootstrap.min.css
            │       │   │   │   │   ├── bootstrap.min.css.map
            │       │   │   │   │   ├── bootstrap-reboot.css
            │       │   │   │   │   ├── bootstrap-reboot.css.map
            │       │   │   │   │   ├── bootstrap-reboot.min.css
            │       │   │   │   │   ├── bootstrap-reboot.min.css.map
            │       │   │   │   │   ├── bootstrap-theme.css
            │       │   │   │   │   ├── bootstrap-theme.css.map
            │       │   │   │   │   ├── bootstrap-theme.min.css
            │       │   │   │   │   └── bootstrap-theme.min.css.map
            │       │   │   │   ├── fonts
            │       │   │   │   │   ├── glyphicons-halflings-regular.eot
            │       │   │   │   │   ├── glyphicons-halflings-regular.svg
            │       │   │   │   │   ├── glyphicons-halflings-regular.ttf
            │       │   │   │   │   ├── glyphicons-halflings-regular.woff
            │       │   │   │   │   └── glyphicons-halflings-regular.woff2
            │       │   │   │   └── js
            │       │   │   │       ├── bootstrap.bundle.js
            │       │   │   │       ├── bootstrap.bundle.js.map
            │       │   │   │       ├── bootstrap.bundle.min.js
            │       │   │   │       ├── bootstrap.bundle.min.js.map
            │       │   │   │       ├── bootstrap.js
            │       │   │   │       ├── bootstrap.js.map
            │       │   │   │       ├── bootstrap.min.js
            │       │   │   │       ├── bootstrap.min.js.map
            │       │   │   │       └── npm.js
            │       │   │   └── LICENSE
            │       │   ├── jquery
            │       │   │   ├── dist
            │       │   │   │   ├── jquery.js
            │       │   │   │   ├── jquery.min.js
            │       │   │   │   └── jquery.min.map
            │       │   │   └── LICENSE.txt
            │       │   ├── jquery-validation
            │       │   │   ├── dist
            │       │   │   │   ├── additional-methods.js
            │       │   │   │   ├── additional-methods.min.js
            │       │   │   │   ├── jquery.validate.js
            │       │   │   │   └── jquery.validate.min.js
            │       │   │   └── LICENSE.md
            │       │   └── jquery-validation-unobtrusive
            │       │       ├── jquery.validate.unobtrusive.js
            │       │       ├── jquery.validate.unobtrusive.min.js
            │       │       └── LICENSE.txt
            │       └── plugins
            │           └── Hos.ScheduleMaster.Demo.zip
            ├── Hos.ScheduleMaster.xUnitTest
            │   ├── ApiCreateTest.cs
            │   ├── coveragereport
            │   │   ├── icon_cube.svg
            │   │   ├── icon_down-dir_active.svg
            │   │   ├── icon_fork.svg
            │   │   ├── icon_info-circled.svg
            │   │   ├── icon_minus.svg
            │   │   ├── icon_plus.svg
            │   │   ├── icon_search-minus.svg
            │   │   ├── icon_search-plus.svg
            │   │   ├── icon_sponsor.svg
            │   │   ├── icon_star.svg
            │   │   ├── icon_up-dir_active.svg
            │   │   ├── icon_up-dir.svg
            │   │   ├── icon_wrench.svg
            │   │   ├── index.htm
            │   │   ├── main.js
            │   │   └── report.css
            │   ├── DelayTaskTest.cs
            │   ├── Hos.ScheduleMaster.xUnitTest.csproj
            │   ├── Mock
            │   │   └── Master
            │   │       ├── MockController.cs
            │   │       └── ScheduleControllerTest.cs
            │   ├── TestResults
            │   │   └── a3e34922-3f7c-4f15-a32d-6d5bfc845ce1
            │   │       └── coverage.cobertura.xml
            │   ├── UnitTest1.cs
            │   ├── Utils
            │   │   ├── AssemblyLoadTest.cs
            │   │   └── LockTest.cs
            │   └── wwwroot
            │       └── plugins
            │           └── 3c915575-7171-4d95-b08e-9f082b3f58b0
            │               ├── Hos.ScheduleMaster.Demo.dll
            │               └── myconfig.json
            └── ScheduleMasterCore.sln

91 directories, 368 files

标签:

实例下载地址

ScheduleMaster分布式任务调度系统介绍

不能下载?内容有错? 点击这里报错 + 投诉 + 提问

好例子网口号:伸出你的我的手 — 分享

网友评论

发表评论

(您的评论需要经过审核才能显示)

查看所有0条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警