Quartz.NET 3.0 正式發佈

Quartz.NET是一個強大、開源、輕量的做業調度框架,你可以用它來爲執行一個做業而建立簡單的或複雜的做業調度。它有不少特徵,如:數據庫支持,集羣,插件,支持cron-like表達式等等。在2017年的最後一天Quartz.NET 3.0發佈,正式支持了.NET Core 和async/await。這是一個大版本,有衆多新特性和大的功能html

官網:http://www.quartz-scheduler.net/git

源碼:https://github.com/quartznet/quartznetgithub

示例:https://www.quartz-scheduler.net/documentation/quartz-3.x/quick-start.html 數據庫

新功能框架

  • 支持 async/await 基於任務的做業,內部以async/await工做
  • 支持.NET Core / netstandard 2.0和.NET Framework 4.5.2及更高版本
  • 經過提供程序名稱SQLite-Microsoft支持Microsoft.Data.Sqlite,舊的提供程序SQLite也仍然有效,還能夠用
  • 增長了對SQL Server內存優化表的初步支持和Quartz.Impl.AdoJobStore.UpdateLockRowSemaphoreMOT
  • 從依賴關係中刪除Common.Logging
  • 刪除C5 Collections,使用.NET框架內置的Collections
  • 在插件啓動時添加對做業調度XML文件的驗證
  • 在TimeZoneUtil中添加對額外自定義時區解析器功能的支持

API 不兼容async

  • 做業和插件分離到一個單獨的程序集/ NuGet包裏 Quartz.Jobs和Quartz.Plugins
  • ADO.NET提供程序名稱已經簡化,提供程序名稱不帶版本,例如SqlServer-20 => SqlServer
  • API方法已經被從新定義,主要使用IReadOnlyCollection,這隱藏了兩個HashSets和List
  • LibLog已經隱藏到內部(ILog等),就像它原本打算的那樣
  • SimpleThreadPool 消失了,用系統的線程池取代了
  • 調度程序方法已經改成基於Task,記得要await 它們
  • IJob接口如今返回一個Task
  • 一些IList屬性已經更改成IReadOnlyList ,以正確反映意圖
  • SQL Server CE支持已被刪除
  • DailyCalendar如今使用日期時間排除日期,並具備ISet接口來訪問它們
  • IObjectSerializer有新的方法,必須實現 void Initialize()
  • IInterruptableJob取消了上下文的CancellationToken

已知的問題ide

  • Windows和Linux之間的時區id有問題,它們在同一個區域使用不一樣的ID
  • .NET Core的沒有Remoting 支持

此次的版本變化很大,若是你是老用戶,你們要認真看下遷移指南: https://www.quartz-scheduler.net/documentation/quartz-3.x/migration-guide.html優化

相關文章
相關標籤/搜索