HTML5技术

使用sqlserver搭建高可用双机热备的Quartz集群部署【附源码】 - 一线码农

字号+ 作者:H5之家 来源:H5之家 2017-05-29 13:01 我要评论( )

一般拿Timer和Quartz相比较的,简直就是对Quartz的侮辱,两者的功能根本就不在一个层级上,如本篇介绍的Quartz强大的集群机制,可以采用基于 sqlserver,mysql的集群方案,当然还可以在第三方插件的基础上实现quartz序列化到热炒的mongodb,redis,震撼力可

  一般拿Timer和Quartz相比较的,简直就是对Quartz的侮辱,两者的功能根本就不在一个层级上,如本篇介绍的Quartz强大的集群机制,可以采用基于

sqlserver,mysql的集群方案,当然还可以在第三方插件的基础上实现quartz序列化到热炒的mongodb,redis,震撼力可想而知,接下来本篇就和大家聊

一聊怎么搭建基于sqlserver的quartz集群,实现这么一种双机热备的强大功能。

 

一:下载sqlserver版的建表脚本

    首先大家可以通过github上搜索quartz的源代码,在源码项目的/database/tables目录下,可以找到firebird,oracle,mysql,sqlserver等建库脚本,

本篇只需拿取sqlserver版本即可。 https://github.com/quartznet/quartznet/tree/master/database/tables  如下图所示

 

 

   

     从上面的截图中可以看到,我接下来要做的事情就是增加一个你需要创建的database名字,这里取为:【quartz】,完整的脚本如下:

(dbo.sysobjects ) ) = 1) . FK_QRTZ_TRIGGERS_QRTZ_JOB_DETAILS (dbo.sysobjects ) ) = 1) . FK_QRTZ_CRON_TRIGGERS_QRTZ_TRIGGERS (dbo.sysobjects ) ) = 1) . FK_QRTZ_SIMPLE_TRIGGERS_QRTZ_TRIGGERS (dbo.sysobjects ) ) = 1) . FK_QRTZ_SIMPROP_TRIGGERS_QRTZ_TRIGGERS (sys.foreign_keys (N) )) .(sys.foreign_keys (N) )) .(dbo.sysobjects ) ) = 1) .(dbo.sysobjects ) ) = 1) .(dbo.sysobjects ) ) = 1) .(dbo.sysobjects ) ) = 1) .(dbo.sysobjects ) ) = 1) .(sys.objects (N) )) .(dbo.sysobjects ) ) = 1) .(dbo.sysobjects ) ) = 1) .(sys.objects (N) )) .(dbo.sysobjects ) ) = 1) .(dbo.sysobjects ) ) = 1) .(dbo.sysobjects ) ) = 1) .QRTZ_SIMPROP_TRIGGERS (dbo.sysobjects ) ) = 1) .. ( (120) NOT NULL , (200) NOT NULL , ) . ( (120) NOT NULL , (150) NOT NULL , (150) NOT NULL , (120) NOT NULL , (80) 95 ) . ( (120) NOT NULL , (140) NOT NULL , (150) NOT NULL , (150) NOT NULL , (200) NOT NULL , , , , (16) NOT NULL, (150) NULL , (150) NULL , , ) . ( (120) NOT NULL , () . ( (120) NOT NULL , (200) NOT NULL , , ) . ( (120) NOT NULL , () . ( (120) NOT NULL , (150) NOT NULL , (150) NOT NULL , (250) NULL , (250) NOT NULL , , , , , ) . ( (120) NOT NULL , (150) NOT NULL , (150) NOT NULL , , , ) . ( (120) NOT NULL , (150) NOT NULL , (150) NOT NULL , (512) NULL, (512) NULL, (512) NULL, , , , , (13,4) NULL, (13,4) NULL, , , 174 ) . ( (120) NOT NULL , (150) NOT NULL , (150) NOT NULL , ) . ( (120) NOT NULL , (150) NOT NULL , (150) NOT NULL , (150) NOT NULL , (150) NOT NULL , (250) NULL , , , , (16) NOT NULL , (8) NOT NULL , , , (200) NULL , , ) . ( , ) . ( , , ) . ( , ) . ( , ) . ( , ) . ( , ) . ( , , ) . ( , , ) . ( , , ) . ( , , ) .QRTZ_BLOB_TRIGGERS ( , , ) . ( , , ) . ( , , ) . ( , , ) . ( , , ) . ( , , ) . ( , , ) . ( , , ) . ( , , ) IDX_QRTZ_T_J ON QRTZ_TRIGGERS(SCHED_NAME,JOB_NAME,JOB_GROUP) IDX_QRTZ_T_JG ON QRTZ_TRIGGERS(SCHED_NAME,JOB_GROUP) IDX_QRTZ_T_C ON QRTZ_TRIGGERS(SCHED_NAME,CALENDAR_NAME) IDX_QRTZ_T_G ON QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_GROUP) IDX_QRTZ_T_STATE ON QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_STATE) IDX_QRTZ_T_N_STATE ON QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP,TRIGGER_STATE) IDX_QRTZ_T_N_G_STATE ON QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_GROUP,TRIGGER_STATE) IDX_QRTZ_T_NEXT_FIRE_TIME ON QRTZ_TRIGGERS(SCHED_NAME,NEXT_FIRE_TIME) IDX_QRTZ_T_NFT_ST ON QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_STATE,NEXT_FIRE_TIME) IDX_QRTZ_T_NFT_MISFIRE ON QRTZ_TRIGGERS(SCHED_NAME,MISFIRE_INSTR,NEXT_FIRE_TIME) IDX_QRTZ_T_NFT_ST_MISFIRE ON QRTZ_TRIGGERS(SCHED_NAME,MISFIRE_INSTR,NEXT_FIRE_TIME,TRIGGER_STATE) IDX_QRTZ_T_NFT_ST_MISFIRE_GRP ON QRTZ_TRIGGERS(SCHED_NAME,MISFIRE_INSTR,NEXT_FIRE_TIME,TRIGGER_GROUP,TRIGGER_STATE) IDX_QRTZ_FT_TRIG_INST_NAME ON QRTZ_FIRED_TRIGGERS(SCHED_NAME,INSTANCE_NAME) IDX_QRTZ_FT_INST_JOB_REQ_RCVRY ON QRTZ_FIRED_TRIGGERS(SCHED_NAME,INSTANCE_NAME,REQUESTS_RECOVERY) IDX_QRTZ_FT_J_G ON QRTZ_FIRED_TRIGGERS(SCHED_NAME,JOB_NAME,JOB_GROUP) IDX_QRTZ_FT_JG ON QRTZ_FIRED_TRIGGERS(SCHED_NAME,JOB_GROUP) IDX_QRTZ_FT_T_G ON QRTZ_FIRED_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) IDX_QRTZ_FT_TG ON QRTZ_FIRED_TRIGGERS(SCHED_NAME,TRIGGER_GROUP) 370 GO

View Code

 

 

二:配置quartz的集群参数

    当我们写var scheduler = StdSchedulerFactory.GetDefaultScheduler()这段代码的时候,如果大家看过源码的话,会知道这个GetScheduler的

过程中有一个初始化方法【Instantiate】方法,此方法中你会发现在做DBProvider的时候会需要几个参数来初始化DB的,比如下面看到的几个标红属性。

 

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • localstorage和sessionstorage上手使用记录 - 蓓蕾心晴

    localstorage和sessionstorage上手使用记录 - 蓓蕾心晴

    2017-05-24 09:00

  • TensorFlowSharp入门使用C#编写TensorFlow人工智能应用 - LineZero

    TensorFlowSharp入门使用C#编写TensorFlow人工智能应用 - LineZero

    2017-05-24 08:00

  • .net 企业管理系统快速搭建框架 - 请求

    .net 企业管理系统快速搭建框架 - 请求

    2017-05-22 18:06

  • 使用three.js实现机器人手臂的运动效果 - faker_archer

    使用three.js实现机器人手臂的运动效果 - faker_archer

    2017-05-21 14:02

网友点评