问题标签 [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.

0 投票
0 回答
529 浏览

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 作业”。

提前致谢

0 投票
1 回答
1648 浏览

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 毫秒

0 投票
2 回答
188 浏览

hangfire - 如何让 Hangfire 挑选工作在最后一小时内排队?

我的要求是只处理最新的工作而忽略旧的工作。如何在 Hangfire 中配置它?

我试过 IApplyStateFilter 来设置 ExpirationAttribute

0 投票
0 回答
43 浏览

c# - 在 Hangfire 上运行作业时无法使用实例的属性

我正在尝试使用 Hangfire 作为作业调度程序。

我创建了Check一个具有一些属性(非静态变量)和Run方法的类。

当我Run为类的特定实例触发方法(使用 Hangfire 框架)时,Run 方法中的属性未初始化。

我知道这是JobActivatorHangfire 的默认行为(当Run方法触发时,创建一个新实例Check并使用它运行该方法)。

据我了解,解决方案是 IoC 容器强制 Hangfire 使用参数化 ctor。我尝试使用 Autofac,但无法正常工作。

如何在安排作业时将参数发送给ctor?

例子:

0 投票
1 回答
2397 浏览

c# - Autofac.Core.Registration.ComponentNotRegisteredException, FAILED: 处理后台作业时发生异常

例外: 请求的服务“Mach.CharterPad.Business.TripManager”尚未注册。要避免此异常,请注册一个组件以提供服务,使用 IsRegistered() 检查服务注册,或使用 ResolveOptional() 方法解决可选依赖项。

Autofac.Core.Registration.ComponentNotRegisteredException:请求的服务“Mach.CharterPad.Business.TripManager”尚未注册。要避免此异常,请注册一个组件以提供服务,使用 IsRegistered() 检查服务注册,或使用 ResolveOptional() 方法解决可选依赖项。

启动.cs

我的控制器.cs

0 投票
1 回答
478 浏览

asp.net-web-api2 - Hangfire Recurring Job 在第二次执行时出现错误

我有一个经常性的工作,它第一次完美运行,但在下一次执行后,它给出了错误。但是,我的方法没有任何异常或错误GetPendingTrips()。有人可以指导我在下一次重复工作的尝试中出现什么问题吗?

在此处输入图像描述

0 投票
1 回答
472 浏览

c# - 用于hangfire的Autofac配置

我想在我的 Asp.Net MVC 应用程序中使用 hangfire,并且我使用 Autofac 作为 DI。
我已经安装了 Hangfire.Autofac nuget
我想添加这样的重复工作:


用户服务.cs


启动.cs

我得到这个错误:

0 投票
1 回答
259 浏览

c# - 来自测试的 Autofac RegisterAssemblyTypes

在我的Startup课堂上,我有一个RegisterAssemblyTypes通过 autofac 的方法,如下所示:

当从集成测试中调用类时,建议使用Autofac(例如RegisterAssemblyTypes)注册程序集的方法是什么?Startup例如,

我正在使用 Autofac 4.9.4。

问题:

您如何在WebApplicationFactory<Startup>using中注册程序集类型Autofac

0 投票
2 回答
350 浏览

c# - 在横向扩展的情况下,我们如何让重复作业仅在一个实例上触发

我使用 Hangfire 从 FTP 服务器读取文件,并且我有多个服务器实例要从 FTP 读取。我只需要在一个实例上触发重复作业,以防止从同一个文件中读取同一个作业。

0 投票
1 回答
241 浏览

c# - Hangfire 中的 JobActivator 不会为 RecurringJob 的每次运行实例化 DataContext

我正在使用HangFireEntityFramework用于经常性工作

活化剂:

然后我ctor初始化了DatacontextRepositoryA

但是,当我像下面这样每分钟从数据库中检索数据时,我收到了错误的数据(项目在 Hangfire 作业之外由其他应用程序更新)。

从作业创建(应用程序启动)开始,项目或 DataContext 似乎已被“缓存”。因为当我使用

它工作正常。

我是不是用错了激活器?或者如何指定DataContext每次调用依赖注入都需要新实例?