Quartz.NET 3.0.7 + MySql 动态调度作业+动态切换版本+多作业引用同一程序集不同版本+持久化+集群(一)
Quartz.NET 3.0.7 + MySql 动态调度作业+动态切换版本+多作业引用同一程序集不同版本+持久化+集群(二)
Quartz.NET 3.0.7 + MySql 动态调度作业+动态切换版本+多作业引用同一程序集不同版本+持久化+集群(四)
上面文章说到集群,之前由于一直在一台电脑上测试.忽略了这一点.
目前暂时没有去解决这个问题.
如果发现管理后台的操作请求失败的话,再去看是不是之前的调度服务节点挂了.改改配置文件,换下请求地址就行了.
什么?
你说"网关?心跳检测?负载均衡?"
由于楼主用的Quartz.NET 版本是 3.0.7 ,要求 .NET Framework 版本 4.5.2 及以上.
结果那天部署正式服务器的时候,懵了.服务器是 4.5 的版本.
于是乎,只能照着官网 2.X=>3.X的迁移指南反迁移回去.
2.X 和 3.X 的不同点如下:
1)2.X都是同步的,而3.X很多方法改成了异步;
2)线程池类型配置 :
2.X quartz.threadPool.type = Quartz.Simpl.SimpleThreadPool, Quartz
3.X quartz.threadPool.type = Quartz.Simpl.DefaultThreadPool, Quartz
3)序列化方式配置 :
2.X 不需要指定;3.X则需要指定 quartz.serializer.type = json 或者 quartz.serializer.type = binary
4)数据库连接配置 : 此乃深坑!!
3.X 很简单, quartz.dataSource.myDS.provider = MySql
2.X quartz.dataSource.myDS.provider = MySql-65
下面的其实都可以
- MySql-50 - MySQL Connector/.NET v. 5.0 (.NET 2.0)
- MySql-51 - MySQL Connector/:NET v. 5.1 (.NET 2.0)
- MySql-65 - MySQL Connector/:NET v. 6.5 (.NET 2.0)
- MySql-69 - MySQL Connector/:NET v. 6.9 (.NET 2.0)
但是,MySql-69 需要 MySql.Data.dll 6.9.5 版本,小弟找了N久.硬是没找到.最后满世界找,好不容易找到了 MySql-65 需要的 6.5.4 ...
也许是要过年了吧!感觉写得虎头蛇尾的.
源码:https://github.com/wjire/Go.Job.QuartzNET3X
由于日志用的公司自己的,没去改它,所以下载下来要报错,手动换一下就可以了