系统软件 应用软件 图形软件 行业软件 安全相关 网络软件 聊天软件 影音软件 教育教学 驱动工具 编程开发 插件下载 源码下载 APP电脑版 其他类别

ScheduleMaster官方版

v2.2

ScheduleMaster官方版

  • 软件大小:7.52 MB
  • 软件语言:简体中文
  • 软件授权:共享软件
  • 软件类型:编程开发
  • 软件平台:WinAll
  • 更新时间:2022-01-27 15:11
  • 星级评分:4级
  • 软件官网:https://www.downza.com/
好评:50%顶一个
坏评:50踩一个

ScheduleMaster简介

ScheduleMaster提供分布式任务调度功能,可以帮助用户在软件中配置工作计划,使得复杂、多线程的任务运行更加顺畅。对于需要搭建任务调度系统的朋友非常有帮助。可以在软件中管理设备,建立设备任务执行流程,设置任务依赖和触发条件,实时监控项目运行过程,在软件中查看运行状态,实时监控报警项目,让用户可以更远程、更多。ScheduleMaster您可以快速创建新的工作任务,您可以控制任务的开始和停止,您可以设置异常报警提醒方案,您可以统计计划任务并提供许多功能!

ScheduleMaster软件功能

基于。NET Core 3.1平台,它支持跨平台多节点部署和运行。

简单的网络用户界面;

任务动态管理:创建、启动、停止、暂停、恢复、删除等。

高可用性支持,跨平台多节点部署。

数据安全,不会有多实例并发调度。

支持自定义参数设置;

支持。NET核心和。NET框架(4 . 6 . 1+);

支持自定义配置文件和热更新;

支持监护人,运行异常时邮件报警;

支持设置任务依赖、自动触发、共享任务结果;

插件开发,任务运行环境隔离;

全链路日志系统,便于控制运行轨迹;

用户访问控制;

提供开放的REST API,业务系统可以无缝集成;

调度报表统计;

任务分组管理;

计划拆分,实现复用;

指定节点操作;

支持http任务配置;

支持延迟的任务;

任务监控;

资源监测;

支持异常策略配置(失败的重试、超时控制等)。);

访问redis缓存;

多数据库类型支持;

用户权限更加细化;

完善的报表统计;

ScheduleMaster软件特色

1.ScheduleMaster可以帮助用户配置任务调度方案。

2.可以设置工作方案,安排复杂的数据访问流程。

3.支持系统配置功能,可在软件中针对节点和响应模式进行设置。

4.支持邮件功能,可以在软件中配置邮件提醒方案。

5.支持HTTP设置功能,可以设置HTTP任务执行的超时。

6.可以在软件中配置任务,也可以添加任务节点。

7.支持参数配置,在软件中设置任务配置方案和参数。

8.支持动态参数启动、配置文件启动和日志跟踪。

ScheduleMaster教程

一、部署模式介绍

因为。NET Core天生对云原生支持友好,这个项目为各种部署场景提供了多种简单有效的方式。

从不同的角度来看,它支持不同的形式。

–从应用配置来看:支持* *静态配置文件* *和* *运行时动态参数* *。

–根据应用启动角度:支持* *自动注册模式* *和* *手动连接模式* *。

以上方法相互结合,相辅相成。

稍微解释一下这个项目涉及的核心概念:

–**主* *:系统的主控制台是ASP.NET Core MVC的一个web应用,是所有任务和节点的控制中心,是用户与调度系统的交互窗口。

–**工作者* *:任务执行者,即实际执行任务的载体,由主控方通过HTTP进行管理。

–* *节点* *:运行主进程或工作进程的网络进程。为了使系统运行,必须至少启动两个节点,即一个主节点和至少一个工作节点。

& gt请注意,主数据库和工作数据库必须使用相同的数据库。

# # #静态配置文件启动

这是项目前期唯一支持的启动方式。在节点启动之前,通过修改在configuration appsettings.json中指定的配置项‘NodeSetting’的参数来实现节点配置。

在自动注册模式下,这些配置将在数据库中注册,并成为节点间相互访问的基础。

在手动连接模式下,配置将无效,节点之间的访问完全取决于控制台中手动的配置。

& gt需要注意的是,Master只提供自动注册模式,即参数必须配置后才能启动,Worker可以支持上述两种模式,下同。

这种启动方式适用于节点数量不多,使用传统部署方式的场景。

# # #动态参数启动

在很多场景下,使用配置文件并不是一个好的解决方案,尤其是参数中的IP和端口不容易提前预定。通常在使用Docker部署时,需要根据不同的配置文件生成不同的映像,或者使用Kubernetes来扩展和收缩节点非常不方便,让人难以忍受。

为了完全适应容器的部署,我设计了动态参数启动模式,支持使用运行时参数改变节点配置。

在自动注册模式下,可以使用命令行参数覆盖对应的配置文件参数,对应的参数名称为:`& # 8211;身份`、` & # 8211;ptocol `、` & # 8211;ip `、` & # 8211;港口`、` & # 8211;poty `、` & # 8211;Maxc,这个模式还是要看配置文件,但是动态参数优先级更高。

在手动连接模式下,节点取决于控制台中的配置。**但是,必须使用动态参数告诉应用程序禁用自动注册* *。有以下两种方式:

–使用环境变量设置**`CORE_AUTOR=false`**和**`CORE_WORKEROF=您的主节点名`**。

–使用命令行参数设置* * `& # 8211;Tor=false`**和* * `& # 8211;Workef=您的主节点名称` * *。

有了动态参数,我们可以使用Docker映像,并且可以使用不同的启动参数部署多个节点。手动连接方式,使用Kubernetes进行节点的弹性伸缩非常方便。

* *默认情况下,系统在配置文件和自动注册模式下启动。

二、动态参数启动

请参考“概要启动”的步骤,首先获取项目的发布文件。

动态参数对自动注册模式和手动连接模式都有效,下面介绍这两种模式的用法。

# # #自动注册节点

这是系统的默认启动模式,适用于主机和工作机,除非明确禁用。

禁用的方式是使用环境变量**`CORE_AUTOR=false`**或命令行参数* * `& # 8211;Tor=false`**,禁用时,必须指定要连接的主节点的名称:**`CORE_WORKEROF=您的主节点名称` **或* * `& # 8211;Workef=您的主节点名称` * *。注意:禁用仅对工作者部署有效!

自动注册模式支持profile+命令行参数的配置模式。如果设置了命令行参数,相应的配置文件参数将被覆盖。

# # # #在窗口中运行

演示如何使用命令行参数覆盖配置文件中的IP和端口字段(假设配置文件中的IP是localhost,端口是100):

*找到Master的发布目录并执行命令` dot net hos。ScheduleMaster。web.dll & 8211;IP = 192 . 168 . 8 . 27 & # 8211;端口=30000 '启动程序。

*找到Worker的发布目录,执行命令` dot net hos。ScheduleMaster。Quartzhost.dll & 8211;URL http://*:30001 & # 8211;identity = worker1 & # 8211IP = 192 . 168 . 8 . 27 & # 8211;端口=30001 '启动程序。

“`

*或者在此Worker的发布目录中,执行命令` dot net hos。ScheduleMaster。Quartzhost.dll & 8211;URL http://*:30002 & # 8211;identity = worker2 & # 8211IP = 192 . 168 . 8 . 27 & # 8211;端口=30002 '您可以启动另一个工作进程。

“外壳

“`

打开Master控制台,进入节点管理页面,发现命令行参数已经生效。

# # # #在Linux中运行

执行与上面相同的步骤。

# # # #在Docker中运行

*执行“Docker构建-t MS _ Master”。命令,以生成主映像,然后执行“docker run-d-p 30000:30000 & # 8211;名称= & # 8221;mymaster & # 8221ms _ master bash & # 8211IP = 192 . 168 . 8 . 27 & # 8211;端口=30000 '运行容器。

“外壳

[ot @ master 1 ms _ master]# docker run-d-p 30000:30000 & # 8211;名称= & # 8221;mymaster & # 8221ms _ master & # 8211IP = 192 . 168 . 8 . 27 & # 8211;端口=30000

3 bbbec 2398d 9147 F9 aa 1 d9 e 57 a 4741385 ffd 33558 f 83320d 62 a 92d 011 e 9 aa 143

“`

*执行“Docker构建-t MS _ Worker”。命令在工人的发布目录中生成工人图像,然后执行` docker Run-D-p 30001:80 & # 8211;名称= & # 8221;myworker1 & # 8243ms _ worker bash & # 8211identity = docker-worker 1 & # 8211;IP = 192 . 168 . 8 . 27 & # 8211;端口=30001 '运行容器以开始工作1。

“外壳

[ot @ master 1 ms _ worker 1]# docker run-d-p 30001:80 & # 8211;名称= & # 8221;myworker1 & # 8243ms _ worker bash & # 8211identity = docker-worker 1 & # 8211;IP = 192 . 168 . 8 . 27 & # 8211;端口=30001

5e 446997 d4a 28 B3 c6ec 0708 a 88d 42 a4 D6 baad 1 e5d 5a e 686d 88 c 03 e 99 C4 e 2003 f

“`

*继续执行` docker Run-D-p 30002:80 & # 8211;名称= & # 8221;myworker2 & # 8243ms _ worker bash & # 8211identity = docker-worker 2 & # 8211;IP = 192 . 168 . 8 . 27 & # 8211;端口=30002 '运行容器以开始工作2。

“外壳

[ot @ master 1 ms _ worker 2]# docker run-d-p 30002:80 & # 8211;名称= & # 8221;myworker2 & # 8243ms _ worker bash & # 8211identity = docker-worker 2 & # 8211;IP = 192 . 168 . 8 . 27 & # 8211;端口=30002

0ca d 44660657d 2251 e 71 b 73 a 46189117 ec3 aad 1445 c 5176276d 32 fa 06360d 56 e

“`

*执行“dockerps”检查每个容器的运行状态,如果容器不起作用,则记录该容器。

可以看出,不需要为不同的Worker重复生成图像。如果不使用容器编排工具进行部署,上面的方法就足够了。

# # #手动连接模式

手动连接模式需要解决的核心问题是那些无法提前预测IP和端口以及Worker平滑伸缩的场景,每个容器(应用)仍然需要使用命令行参数单独配置,使用Kubernetes Deployment进行伸缩仍然不方便。

此时,可以禁用自动注册,并通过手动连接建立与Worker的通信。下面只描述Windows下的用法,其他平台也差不多。

*第一步是启动工作进程:

“外壳

“`

*第二步是在控制台中创建一个节点(注意这里的主机地址需要填写Worker实际监听的地址):

![ ](https://imgkr.cn-bj.ufileos.com/4bff500d-ce3d-442f-a8d7-13827c3e865a.png)![](https://imgkr . cn-bj . ufileos . com/4 BFF 500d-ce3d-442 f-a8d 7-13827 C3 e 865 a . png)

*第三步:在节点上执行“连接”,可以看到节点连接成功:

“外壳

信息:Hos。ScheduleMaster. Quartz host . contallers . Quartz contller[0]

成功连接到主节点!

“`

连接成功后,节点空闲,可以启用节点启动调度功能。

& gt提示:对于这种部署场景,最好的方法是通过在项目类属中设置环境变量(或者在Dockerfile中设置环境变量)来完全禁用自动注册,这样就不必每次都通过命令行参数来禁用它。

第三,编写业务代码

只有在组装任务下,才需要编写自己的业务代码。虽然这种方法实现起来比较麻烦,但是更加灵活。

访问过程是:*安装依赖包->;开发业务代码->;打包并上传->;创建任务* *

# # #安装依赖包

–手动添加引用程序集文件` hos。ScheduleMaster。编译项目后的base.dll`。

–在nuget中搜索`ScheduleMaster`直接安装到项目中。

–在软件包管理控制台中使用“install-packageScheduleMaster `install”。

–使用` dotnet add packageScheduleMaster`在命令行上安装。

# # #开发业务代码

业务代码类必须从任务基类“hos”继承。ScheduleMaster。基地。Taskbase `,其中image方法` public abstract void run(Taskbontext);是业务执行门户,所以只需要重写这个image方法。

下面是最简单的例子:

# # # #使用自定义配置文件:

“`

# # # #父子任务结果转移:

# # # #取消长时间任务:

“`

有关更多代码示例,请参考。ScheduleMaster。源代码中的演示项目。如果你找到了更好的使用场景,请提到PR和我们分享。

# # #打包并上传

业务开发完成后,需要将项目编译成dll文件,将与业务相关的dll文件和配置文件打包成. zip压缩包,以项目名称为文件名。您可以选择两种上传方式:

–当控制台创建任务时,通过上传门户上传包。

–使用文件传输方法将包上传到主进程的`/wwwot/plugins/'目录中,对于大型包,建议这样做。

在打包和更新文件的过程中,有几点需要特别注意:

–包必须以任务所在程序集的名称命名,否则无法启动。

–在一个项目中,开发了多个任务入口,包只需要上传一次,但是要注意上传的版本是否覆盖了你所有的任务。

–任务开始时,默认情况下将加载最新的包。如果不想使用最新版本,可以使用系统参数‘组装任务-拉包策略’进行设置。

–你不需要包括hos。ScheduleMaster。打包时使用base.dll `,否则将无法启动。

–业务要尽量减少对第三方dll的依赖,否则会使包过大,导致启动时出现不可预知的异常。

收起介绍展开介绍
  • 安卓合集
  • 软件合集
  • 浏览器
  • 电脑管家
  • 安卓游戏
更多 >> 安卓合集安卓合计

热门推荐

装机必备软件