问题标签 [hangfire-autofac]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - Autofac注册具体类
我在使用 Autofac 注册具体类时收到以下错误
这是课
这就是我使用 autofac 进行注册的方式
将上述类称为
PageCachingJob 类 -
BaseJob 类
界面 -
ICachingService 接口
缓存服务类
获取以下异常
在“PacDig.Atlantic.Schedule.Jobs.NoRetryJob`1[PacDig.Atlantic.Schedule.Jobs.PageCachingJob]”类型上使用“Autofac.Core.Activators.Reflection.DefaultConstructorFinder”找到的任何构造函数都不能使用可用服务调用和参数:无法解析构造函数“Void .ctor(PacDig.Atlantic.Schedule.Jobs.PageCachingJob)”的参数“PacDig.Atlantic.Schedule.Jobs.PageCachingJob 作业”。
提前致谢
hangfire - Hangfire 正在停止,日志捕获停止信号
我已经为我的 Web API 解决方案配置了 Hangfire。但是在一段时间记录停止信号后,Hangfire 停止工作。但是,如果再次使用 API,它会加载并正常工作。Hangfire 停止前产生的日志如下。我应该怎么做才能防止这种情况发生。
[137] INFO Hangfire.Server.BackgroundServerProcess - 服务器 xyz:26756:c4da0558 捕捉到停止信号... [ServerWatchdog #1] 调试 Hangfire.Processing.BackgroundExecution - 执行循环 ServerWatchdog:32e9252b 在 2.2406 毫秒内停止 [ExpirationManager #1] 调试 Hangfire .Processing.BackgroundExecution - 执行循环 ExpirationManager:802eb676 在 2.2681 毫秒内停止 [Worker #3] DEBUG Hangfire.Processing.BackgroundExecution - 执行循环 Worker:3d798436 在 2.4496 毫秒内停止 [CountersAggregator #1] DEBUG Hangfire.Processing.BackgroundExecution - 执行循环 CountersAggregator :f6091560 在 3.1411 毫秒内停止 [Worker #2] 调试 Hangfire.Processing.BackgroundExecution - 执行循环 Worker:8b960c88 在 3.7784 毫秒内停止 [Worker #2] 调试 Hangfire.Processing.BackgroundExecution - 执行循环 Worker:8b960c88 在 3 中停止。7784 毫秒 [Worker #4] 调试 Hangfire.Processing.BackgroundExecution - 执行循环 Worker:8e0e3cc8 在 4.2624 毫秒内停止 [DelayedJobScheduler #1] 调试 Hangfire.Processing.BackgroundExecution - 执行循环 DelayedJobScheduler:066c3859 在 4.5509 毫秒内停止 [136] INFO Hangfire。 Server.BackgroundServerProcess - 服务器 xyz:26756:c4da0558 捕获停止信号... [Worker #1] 调试 Hangfire.Processing.BackgroundExecution - 执行循环 Worker:dfcd3314 在 5.7981 毫秒内停止 [RecurringJobScheduler #1] 调试 Hangfire.Processing.BackgroundExecution - 执行循环 RecurringJobScheduler:2b8e4675 在 6.1803 毫秒内停止 [ServerJobCancellationWatcher #1] 调试 Hangfire.Processing.BackgroundExecution - 执行循环 ServerJobCancellationWatcher:554692cc 在 6.216 毫秒内停止 [BackgroundServerProcess #1] INFO Hangfire.Server。BackgroundServerProcess - 服务器 xyz:26756:c4da0558 所有调度程序已停止 [ServerHeartbeatProcess #1] 调试 Hangfire.Processing.BackgroundExecution - 执行循环 ServerHeartbeatProcess:f3cc4077 在 8.3409 毫秒内停止 [BackgroundServerProcess #1] 调试 Hangfire.Server.BackgroundServerProcess - 服务器 xyz:26756:c4da0558正在报告自己已停止... [BackgroundServerProcess #1] INFO Hangfire.Server.BackgroundServerProcess - 服务器 xyz:26756:c4da0558 在 199.8624 毫秒内成功报告自己已停止 [BackgroundServerProcess #1] 调试 Hangfire.Processing.BackgroundExecution - 执行循环 BackgroundServerProcess: dd1eaf65 在 214.6647 毫秒内停止 [BackgroundServerProcess #1] INFO Hangfire.Server.BackgroundServerProcess - 服务器 virtuadeskdev04:26756:c4da0558 总共停止了 212.7921 毫秒c4da0558 所有调度程序已停止 [ServerHeartbeatProcess #1] 调试 Hangfire.Processing.BackgroundExecution - 执行循环 ServerHeartbeatProcess:f3cc4077 在 8.3409 毫秒内停止 [BackgroundServerProcess #1] 调试 Hangfire.Server.BackgroundServerProcess - 服务器 xyz:26756:c4da0558 报告自己已停止。 . [BackgroundServerProcess #1] INFO Hangfire.Server.BackgroundServerProcess - 服务器 xyz:26756:c4da0558 成功报告自己在 199.8624 毫秒内停止 [BackgroundServerProcess #1] 调试 Hangfire.Processing.BackgroundExecution - 执行循环 BackgroundServerProcess:dd1eaf65 在 214.6647 毫秒内停止 [BackgroundServerProcess #1] INFO Hangfire.Server.BackgroundServerProcess - 服务器 virtuadeskdev04:26756:c4da0558 总共停止了 212.7921 毫秒c4da0558 所有调度程序已停止 [ServerHeartbeatProcess #1] 调试 Hangfire.Processing.BackgroundExecution - 执行循环 ServerHeartbeatProcess:f3cc4077 在 8.3409 毫秒内停止 [BackgroundServerProcess #1] 调试 Hangfire.Server.BackgroundServerProcess - 服务器 xyz:26756:c4da0558 报告自己已停止。 . [BackgroundServerProcess #1] INFO Hangfire.Server.BackgroundServerProcess - 服务器 xyz:26756:c4da0558 成功报告自己在 199.8624 毫秒内停止 [BackgroundServerProcess #1] 调试 Hangfire.Processing.BackgroundExecution - 执行循环 BackgroundServerProcess:dd1eaf65 在 214.6647 毫秒内停止 [BackgroundServerProcess #1] INFO Hangfire.Server.BackgroundServerProcess - 服务器 virtuadeskdev04:26756:c4da0558 总共停止了 212.7921 毫秒BackgroundExecution - 执行循环 ServerHeartbeatProcess:f3cc4077 在 8.3409 毫秒内停止 [BackgroundServerProcess #1] DEBUG Hangfire.Server.BackgroundServerProcess - 服务器 xyz:26756:c4da0558 报告自己已停止... [BackgroundServerProcess #1] INFO Hangfire.Server.BackgroundServerProcess - 服务器xyz:26756:c4da0558 成功报告自己在 199.8624 毫秒内停止 [BackgroundServerProcess #1] 调试 Hangfire.Processing.BackgroundExecution - 执行循环 BackgroundServerProcess:dd1eaf65 在 214.6647 毫秒内停止 [BackgroundServerProcess #1] INFO Hangfire.Server.BackgroundServerProcess - 服务器 virtuadeskdev04:26756 :c4da0558 总共停止了 212.7921 毫秒BackgroundExecution - 执行循环 ServerHeartbeatProcess:f3cc4077 在 8.3409 毫秒内停止 [BackgroundServerProcess #1] DEBUG Hangfire.Server.BackgroundServerProcess - 服务器 xyz:26756:c4da0558 报告自己已停止... [BackgroundServerProcess #1] INFO Hangfire.Server.BackgroundServerProcess - 服务器xyz:26756:c4da0558 成功报告自己在 199.8624 毫秒内停止 [BackgroundServerProcess #1] 调试 Hangfire.Processing.BackgroundExecution - 执行循环 BackgroundServerProcess:dd1eaf65 在 214.6647 毫秒内停止 [BackgroundServerProcess #1] INFO Hangfire.Server.BackgroundServerProcess - 服务器 virtuadeskdev04:26756 :c4da0558 总共停止了 212.7921 毫秒BackgroundServerProcess - 服务器 xyz:26756:c4da0558 报告自己已停止... [BackgroundServerProcess #1] INFO Hangfire.Server.BackgroundServerProcess - 服务器 xyz:26756:c4da0558 成功报告自己在 199.8624 毫秒内停止 [BackgroundServerProcess #1] 调试 Hangfire。 Processing.BackgroundExecution - 执行循环 BackgroundServerProcess:dd1eaf65 在 214.6647 毫秒内停止 [BackgroundServerProcess #1] INFO Hangfire.Server.BackgroundServerProcess - 服务器 virtuadeskdev04:26756:c4da0558 总共停止了 212.7921 毫秒BackgroundServerProcess - 服务器 xyz:26756:c4da0558 报告自己已停止... [BackgroundServerProcess #1] INFO Hangfire.Server.BackgroundServerProcess - 服务器 xyz:26756:c4da0558 成功报告自己在 199.8624 毫秒内停止 [BackgroundServerProcess #1] 调试 Hangfire。 Processing.BackgroundExecution - 执行循环 BackgroundServerProcess:dd1eaf65 在 214.6647 毫秒内停止 [BackgroundServerProcess #1] INFO Hangfire.Server.BackgroundServerProcess - 服务器 virtuadeskdev04:26756:c4da0558 总共停止了 212.7921 毫秒BackgroundExecution - 执行循环 BackgroundServerProcess:dd1eaf65 在 214.6647 毫秒内停止 [BackgroundServerProcess #1] INFO Hangfire.Server.BackgroundServerProcess - 服务器 virtuadeskdev04:26756:c4da0558 总共停止了 212.7921 毫秒BackgroundExecution - 执行循环 BackgroundServerProcess:dd1eaf65 在 214.6647 毫秒内停止 [BackgroundServerProcess #1] INFO Hangfire.Server.BackgroundServerProcess - 服务器 virtuadeskdev04:26756:c4da0558 总共停止了 212.7921 毫秒
hangfire - 如何让 Hangfire 挑选工作在最后一小时内排队?
我的要求是只处理最新的工作而忽略旧的工作。如何在 Hangfire 中配置它?
我试过 IApplyStateFilter 来设置 ExpirationAttribute
c# - 在 Hangfire 上运行作业时无法使用实例的属性
我正在尝试使用 Hangfire 作为作业调度程序。
我创建了Check
一个具有一些属性(非静态变量)和Run
方法的类。
当我Run
为类的特定实例触发方法(使用 Hangfire 框架)时,Run 方法中的属性未初始化。
我知道这是JobActivator
Hangfire 的默认行为(当Run
方法触发时,创建一个新实例Check
并使用它运行该方法)。
据我了解,解决方案是 IoC 容器强制 Hangfire 使用参数化 ctor。我尝试使用 Autofac,但无法正常工作。
如何在安排作业时将参数发送给ctor?
例子:
c# - Autofac.Core.Registration.ComponentNotRegisteredException, FAILED: 处理后台作业时发生异常
例外: 请求的服务“Mach.CharterPad.Business.TripManager”尚未注册。要避免此异常,请注册一个组件以提供服务,使用 IsRegistered() 检查服务注册,或使用 ResolveOptional() 方法解决可选依赖项。
Autofac.Core.Registration.ComponentNotRegisteredException:请求的服务“Mach.CharterPad.Business.TripManager”尚未注册。要避免此异常,请注册一个组件以提供服务,使用 IsRegistered() 检查服务注册,或使用 ResolveOptional() 方法解决可选依赖项。
启动.cs
我的控制器.cs
c# - 用于hangfire的Autofac配置
我想在我的 Asp.Net MVC 应用程序中使用 hangfire,并且我使用 Autofac 作为 DI。
我已经安装了 Hangfire.Autofac nuget
我想添加这样的重复工作:
用户服务.cs
启动.cs
我得到这个错误:
c# - 来自测试的 Autofac RegisterAssemblyTypes
在我的Startup
课堂上,我有一个RegisterAssemblyTypes
通过 autofac 的方法,如下所示:
当从集成测试中调用类时,建议使用Autofac
(例如RegisterAssemblyTypes
)注册程序集的方法是什么?Startup
例如,
我正在使用 Autofac 4.9.4。
问题:
您如何在WebApplicationFactory<Startup>
using中注册程序集类型Autofac
?
c# - 在横向扩展的情况下,我们如何让重复作业仅在一个实例上触发
我使用 Hangfire 从 FTP 服务器读取文件,并且我有多个服务器实例要从 FTP 读取。我只需要在一个实例上触发重复作业,以防止从同一个文件中读取同一个作业。
c# - Hangfire 中的 JobActivator 不会为 RecurringJob 的每次运行实例化 DataContext
我正在使用HangFire
并EntityFramework
用于经常性工作
活化剂:
然后我ctor
初始化了Datacontext
和RepositoryA
但是,当我像下面这样每分钟从数据库中检索数据时,我收到了错误的数据(项目在 Hangfire 作业之外由其他应用程序更新)。
从作业创建(应用程序启动)开始,项目或 DataContext 似乎已被“缓存”。因为当我使用
它工作正常。
我是不是用错了激活器?或者如何指定DataContext
每次调用依赖注入都需要新实例?