Quartz.Net Job整合DI的生命周期问题

Quartz.Net 提供直接整合.Net Core DI的扩展,安装底下的套件即可

Install-Package Quartz.Extensions.DependencyInjection

而在Startup.cs中可以决定Job注入的物件之生命周期,有两种模式

q.UseMicrosoftDependencyInjectionJobFactory();
q.UseMicrosoftDependencyInjectionScopedJobFactory();

UseMicrosoftDependencyInjectionJobFactory()方法
Quartz.Net官方说明意思为-保持DI配置不变,需要具有public的无参数构造函数。MS DI预设会产生临时实例,所以不能与EF Core的DbContext等Scope Service一起使用.
实际上在Asp.net core中测试发现,似乎相同的Job只会New一个实例,因此如果Job注入的DbContext都会是同一个实例,导致DbContext使用上出错.
而改用UseMicrosoftDependencyInjectionScopedJobFactory()方法,Job实例就与MS DI的Scope范围一致了.


<<:  PHP Array Mapping

>>:  你要的是Entity Framework吗?

[Day_29]函式与递回_(8)

函式视为物件 Python中函式视为物件,以函式名称当作物件,函式名称加上()才会执行该函式,范例如...

Day-07 说明Ruby 的include, extend,require差别?

Ruby 里面有多种引入 Module 方式,他们的差别是什麽呢? Include: 当一个 cla...

10.MYSQL运算子

每一种语言都有自己运算的符号,SQL也不例外,下面帮大家整理了一些常用的一些运算子,这些运算子会在条...

Day 26 - Watch os 开发学习3(输入框、Picker)

在Apple watch中,我们依然可以去使用输入框 struct ContentView: Vie...

我们的基因体时代-AI, Data和生物资讯 Day24- 使用tidyverse观念来分析基因资料:plyranges

上一篇我们的基因体时代-AI, Data和生物资讯 Day23- 基因注释资料在Bioconduct...