Quartz.NET 3.0 正式發布


Quartz.NET是一個強大、開源、輕量的作業調度框架,你能夠用它來為執行一個作業而創建簡單的或復雜的作業調度。它有很多特征,如:數據庫支持,集群,插件,支持cron-like表達式等等。在2017年的最后一天Quartz.NET 3.0發布,正式支持了.NET Core 和async/await。這是一個大版本,有眾多新特性和大的功能

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

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

示例: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 不兼容

  • 作業和插件分離到一個單獨的程序集/ 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

已知的問題

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

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM