首页 > 其他分享 >quartz.net 配置UseClustering

quartz.net 配置UseClustering

时间:2023-07-25 19:08:43浏览次数:33  
标签:quartz VARCHAR NAME UseClustering Quartz NET NULL net

Quartz.NET 配置 UseClustering

概述

在开始之前,我们需要明确一些概念。Quartz.NET 是一个强大且灵活的开源任务调度库,它可以帮助我们在 .NET 应用程序中实现各种定时任务。而 UseClustering 则是 Quartz.NET 提供的一项功能,用于在多个节点之间分配和处理任务。

本文将教你如何通过配置 Quartz.NET 的 UseClustering 功能来实现任务调度的集群化。

配置过程

下面是配置 UseClustering 的步骤和代码示例。你可以根据以下步骤逐一进行操作:

步骤 说明
1 安装 Quartz.NET 包
2 配置 Quartz.NET 的 UseClustering
3 配置数据库作为集群的存储介质
4 配置集群节点
5 启动集群节点

步骤 1:安装 Quartz.NET 包

首先,你需要在你的项目中安装 Quartz.NET 包。你可以使用 NuGet 来安装它。打开项目的 Package Manager Console,执行以下命令:

Install-Package Quartz

这将安装最新版本的 Quartz.NET 包。

步骤 2:配置 UseClustering

在你的应用程序中,你需要配置 Quartz.NET 的 UseClustering 功能。打开你的配置文件(通常是 app.configweb.config),添加以下配置节:

<configSections>
    <section name="quartz" type="System.Configuration.NameValueSectionHandler, System, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
</configSections>

<quartz>
    <add key="quartz.scheduler.instanceName" value="MyScheduler" />
    <add key="quartz.threadPool.type" value="Quartz.Simpl.SimpleThreadPool, Quartz" />
    <add key="quartz.threadPool.threadCount" value="10" />
    <add key="quartz.jobStore.type" value="Quartz.Impl.AdoJobStore.JobStoreTX, Quartz" />
    <add key="quartz.jobStore.useProperties" value="true" />
    <add key="quartz.jobStore.dataSource" value="default" />
    <add key="quartz.jobStore.driverDelegateType" value="Quartz.Impl.AdoJobStore.StdAdoDelegate, Quartz" />
    <add key="quartz.dataSource.default.connectionString" value="your_connection_string" />
    <add key="quartz.dataSource.default.provider" value="SqlServer-20" />
</quartz>

请确保将 your_connection_string 替换为实际的数据库连接字符串。

步骤 3:配置数据库作为集群的存储介质

在上一步的配置中,我们使用了 Quartz.NET 的数据库存储介质。因此,你需要创建一个数据库来存储 Quartz.NET 的任务和调度信息。

  1. 创建一个数据库,并命名为 QuartzDB(或者你喜欢的其他名称)。
  2. 使用以下 SQL 脚本在 QuartzDB 数据库中创建必要的表结构:
CREATE TABLE QRTZ_LOCKS (
    SCHED_NAME VARCHAR(120) NOT NULL,
    LOCK_NAME  VARCHAR(40)  NOT NULL,
    PRIMARY KEY (SCHED_NAME, LOCK_NAME)
);

CREATE TABLE QRTZ_FIRED_TRIGGERS (
    SCHED_NAME         VARCHAR(120)        NOT NULL,
    ENTRY_ID           VARCHAR(95)         NOT NULL,
    TRIGGER_NAME       VARCHAR(200)        NOT NULL,
    TRIGGER_GROUP      VARCHAR(200)        NOT NULL,
    INSTANCE_NAME      VARCHAR(200)        NOT NULL,
    FIRED_TIME         BIGINT              NOT NULL,
    SCHED_TIME         BIGINT              NOT NULL,
    PRIORITY           INTEGER             NOT NULL,
    STATE              VARCHAR(16)         NOT NULL,
    JOB_NAME           VARCHAR(200),
    JOB_GROUP          VARCHAR(200),
    IS_NONCONCURRENT   BOOLEAN,
    REQUESTS_RECOVERY  BOOLEAN,
    PRIMARY KEY (SCHED_NAME, ENTRY_ID)
);

CREATE TABLE QRTZ_SIMPLE_TRIGGERS (
    SCHED_NAME         VARCHAR(120)        NOT NULL,
    TRIGGER_NAME       VARCHAR(200)        NOT NULL,
    TRIGGER_GROUP      VARCHAR(200)        NOT NULL,
    REPEAT_COUNT       INTEGER             NOT NULL,
    REPEAT_INTERVAL    BIGINT              NOT NULL,
    TIMES_TRIGGERED    INTEGER             NOT NULL,
    PRIMARY KEY (SCHED_NAME, TRIGGER_NAME,

标签:quartz,VARCHAR,NAME,UseClustering,Quartz,NET,NULL,net
From: https://blog.51cto.com/u_16175526/6848212

相关文章

  • quartz.net core
    如何使用Quartz.NetCore介绍Quartz.NetCore是一个开源的任务调度库,可以帮助开发者实现定时任务的调度和执行。本文将指导你如何使用Quartz.NetCore。首先,让我们看一下整个实现过程的流程图。实现步骤下面是使用Quartz.NetCore实现定时任务的步骤:步骤描述步......
  • PROFINET转TCP/IP网关profinet电缆
    大家好,今天要和大家分享一款自主研发的通讯网关,捷米JM-PN-TCPIP。这款网关可是集多种功能于一身,PROFINET从站功能,让它在通讯领域独领风骚。想知道这款网关如何实现PROFINET和TCP/IP网络的连接吗?一起来看看吧!首先,这款网关可以连接到PROFINET总线中作为从站使用,同时还能连接到TCP/I......
  • .NET项目重构之日志服务(Serilog)
    1.目录1.目录2.前言2.1.日志控件的选择3.日志配置3.1.控制台打印3.2.文件打印4.结语2.前言定时任务中比较重要的一个环节就是日志记录,有了日志可以记录系统的操作过程,也可以在系统异常时方便排查错误原因。比如定时任务经常要做的一个事情,同步其它异构......
  • vb.net 模仿键盘操作
    模仿键盘操作inVB.NET在编写自动化测试、数据录入等任务时,模拟键盘操作是一项非常有用的技术。在VB.NET中,我们可以使用SendKeys类来模仿键盘操作。SendKeys类允许我们向活动窗口发送多个按键和键盘命令,实现模拟键盘输入的效果。本文将介绍SendKeys类的基本使用方法,并提供一些常......
  • unable to access 'https://git.oak.net.cn/pigsales/frontend/ai-sales.git/': F
    Git远程仓库无法访问的问题及解决方法在使用Git进行协作开发时,我们经常会遇到无法访问远程仓库的问题。本文将介绍一种常见的错误信息:“unabletoaccess'F”,并提供解决方法。错误信息分析错误信息中的“unabletoaccess”表示无法访问,后面的URL是远程仓库的地址。而最后的“......
  • 记录使用HPSocket.NET包开发WebSocket通讯,报错Could not decode a text frame as UTF-
    因工作需要开发Scada系统,使用到WebSocket通讯,网页客户端接收数据时发生CouldnotdecodeatextframeasUTF-8报错 通过网络检索,有多种说法,验证如下1、文本针和二进制针的数据发送方式都测试失败1stringkson=JsonConvert.Serialize......
  • asp.net core之依赖注入
    依赖注入概念ASP.NETCore支持依赖关系注入(DI)软件设计模式,这是一种在类及其依赖关系之间实现控制反转(IoC)的技术。按照官方文档的描述:依赖关系注入通过以下方式解决了这些问题:使用接口或基类将依赖关系实现抽象化。在服务容器中注册依赖关系。ASP.NETCore提供了一......
  • .Net 项目类型区别 Windows窗体应用程序
    .NET框架(特定于Windows),然后使用WindowsFormsApp(.NETFramework)。Windows窗体应用程序(.NETFramework) 解决方案默认名称:windowsFormsApp.NET核心/.NET(跨平台),然后使用WindowsFormsApp。Windows窗体应用程序  解决方案默认名称:winFormsApp......
  • 通过iptables转发后的端口telnet通但是curl不通的问题
    今天遇到一个问题,一个隔离安全域的服务器需要访问承载网上的gitlab,但是无法直接做互通,所以需要通过iptables转发一次。完成iptables规则后,发现telnet端口是通的但是curlhttp:地址加端口就会返回不通。于是不停的改iptables规则,甚至放行forword规则,最后检查发现是存在外网的代理(代......
  • Kubernetes修改Pod数量
    修改kubeletpod数量并在启动命令尾部添加变量$KUBELET_NODE_MAX_PODS如下:重启kubelet:[root@k8s02~]#systemctldaemon-reload&&systemctlrestartkubelet检查结果:[root@k8s02~]#kubectldescribenodek8s02|greppodspods:150pods:......