作业调度框架 Quartz.NET 3.0 正式发布:支持 .NET Core

局长
 局长
发布于 2018年01月14日
收藏 23

Quartz.NET是一个强大、开源、轻量的作业调度框架,你能够用它来为执行一个作业而创建简单的或复杂的作业调度。它有很多特征,如:数据库支持,集群,插件,支持cron-like表达式等等。

在2017年的最后一天Quartz.NET 3.0发布,正式支持了.NET Core和async/await。这是一个大版本,有众多新特性和大的功能,这是Quartz.NET有史以来最大的、最值得兴奋的一个版本。

官网:http://www.quartz-scheduler.net/ 
源码:https://github.com/quartznet/quartznet 
示例:https://www.quartz-scheduler.net/documentation/quartz-3.x/quick-start.html

整个版本相对于2.0版本进行了大量的修改,正式支持了.NET Core和async/await:

  • 支持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中添加对额外自定义时区解析器功能的支持

3.0在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

来自:http://www.cnblogs.com/shanyou/p/8269641.html

本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创开源社区。
转载请注明:文章转载自 开源中国社区 [http://www.oschina.net]
本文标题:作业调度框架 Quartz.NET 3.0 正式发布:支持 .NET Core
加载中

精彩评论

Rwing
Rwing
已经切到 FluentScheduler 了。。。。。。。

最新评论(15

探索人生
探索人生

引用来自“Rwing”的评论

已经切到 FluentScheduler 了。。。。。。。

引用来自“探索人生”的评论

IIS自动回收导致定时不执行 请问 怎么解决?

引用来自“billq”的评论

这个问题Quartz.NET也有吧

引用来自“探索人生”的评论

对啊 所以我在这问这个问题

引用来自“billq”的评论

设置一下 IIS Application Pool的回收方式吧,这个最简单
设置了,担心内存溢出
billq
billq

引用来自“Rwing”的评论

已经切到 FluentScheduler 了。。。。。。。

引用来自“探索人生”的评论

IIS自动回收导致定时不执行 请问 怎么解决?

引用来自“billq”的评论

这个问题Quartz.NET也有吧

引用来自“探索人生”的评论

对啊 所以我在这问这个问题
设置一下 IIS Application Pool的回收方式吧,这个最简单
探索人生
探索人生

引用来自“Rwing”的评论

已经切到 FluentScheduler 了。。。。。。。

引用来自“探索人生”的评论

IIS自动回收导致定时不执行 请问 怎么解决?

引用来自“billq”的评论

这个问题Quartz.NET也有吧
对啊 所以我在这问这个问题
billq
billq

引用来自“Rwing”的评论

已经切到 FluentScheduler 了。。。。。。。

引用来自“探索人生”的评论

IIS自动回收导致定时不执行 请问 怎么解决?
这个问题Quartz.NET也有吧
G7
G7
quartz也有.net版了?
water6000
water6000
这个怎么样,有人用这个吗?
Rwing
Rwing

引用来自“Rwing”的评论

已经切到 FluentScheduler 了。。。。。。。

引用来自“探索人生”的评论

IIS自动回收导致定时不执行 请问 怎么解决?
不要托管在 web 项目啊,单起一个项目。或者你可以看看 hangfire,他有这方面的处理
宇润
宇润
好久没见到.net开源项目了,支持
探索人生
探索人生
IIS自动回收导致定时不执行 请问 怎么解决?
探索人生
探索人生

引用来自“Rwing”的评论

已经切到 FluentScheduler 了。。。。。。。
IIS自动回收导致定时不执行 请问 怎么解决?
返回顶部
顶部