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
由於日志用的公司自己的,沒去改它,所以下載下來要報錯,手動換一下就可以了