问题标签 [hangfire]

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 回答
1059 浏览

sql-server - 在 ExpireAt 后不会删除 Hangfire 作业

我正在SQL Server使用Hangfire. 由于每天创造就业机会的速度可能非常高(数以十万计),因此数据库的大小也增长得非常快。

最初我认为它仍然可以,因为Succeeded工作会在一天后被删除。令我惊讶的是,即使过了几天,这份工作还没有从桌子上删除Hangfire.Jobs

当我在 2015 年 7 月 30 日运行此查询时:

我得到了2015-07-21 13:28:27.543,大约是 9 天前。

我可以自己手动删除这些作业,或者创建一个定期清理它的批处理作业,但是在任何情况下,Succeeded 作业在其 ExpireAt 之后仍然保留吗?

0 投票
1 回答
4021 浏览

c# - 从 Hangfire backgroundjob C# Web Mvc 调用 Singleton 实例中的方法

正如标题所说,我正在尝试从 Hangfire 中的后台作业调用驻留在 Singleton 实例中的方法。我尝试使用下面的代码将作业排入队列,但它们都不起作用:

我的单例类如下所示:

Hangfire 然后生成此作业和错误:

System.InvalidOperationException

该类型MyApplicaton.Context.MyApplicatonContext不包含带有签名的方法TestString()

System.InvalidOperationException:该类型 MyApplicaton.Context.MyApplicatonContext不包含TestString() 在 Hangfire.Storage.InvocationData.Deserialize()签名的方法

我怎样才能让它工作?

http://docs.hangfire.io/en/latest/background-methods/passing-dependencies.html

0 投票
1 回答
1779 浏览

asp.net - Hangfire 如何处理应用域重启?

在我的 ASP.NET MVC 应用程序中,我将运行后台任务,有时会持续约 10 分钟。我已经阅读了该主题,发现应用程序域有时会重新启动,从而删除了我的线程。

因此,我查找了一些解决方案。我找到的主要解决方案是Hangfire。我知道它会在它们失败时重新启动作业等,但是它们是否以某种方式“绕过”应用程序域重新启动,或者在这种情况下它只是重新启动作业?

0 投票
1 回答
178 浏览

hangfire - 如果在作业运行时部署 Hangfire,会发生什么?

假设我们要部署一些新的 Hangfire 作业,并且作业代码都打包在一起。文档中并不清楚,所以如果在(长时间运行的)作业运行时部署 Hangfire 会发生什么?

0 投票
2 回答
1223 浏览

asp.net - 在 asp.net mvc web 应用程序中运行后台任务的工具

我对在 asp.net mvc Web 应用程序中执行后台和长时间运行的任务的正确设计决策感到困惑。现在在这两个链接上:-

http://www.hanselman.com/blog/HowToRunBackgroundTasksInASPNET.aspx

&

http://haacked.com/archive/2011/10/16/the-dangers-of-implementing-recurring-background-tasks-in-asp-net.aspx/

他们提到在 asp.net Web 应用程序中运行后台任务和长时间运行的任务是有风险的,原因是他们列出的(主要是因为 IIS 不是为运行这些类型的任务而设计的)。但同时他们列出了一些可以安装在 asp.net 项目中以运行后台作业的工具,例如quartz.net、WebBackgrounder 等。

所以我不确定这些工具是如何工作的?例如,如果我将 WebBackgrounder 安装在我的 asp.net mvc Web 应用程序中(使用 nuget),并且我在 IIS 中部署我的 asp.net mvc Web 应用程序,那么这些工具中定义的作业也会在 IIS 下运行吗?或者它们将独立于托管 Web 应用程序的 II 运行?

0 投票
1 回答
553 浏览

hangfire - Hangfire - 日志处理历史

我找不到记录处理历史记录的方法=(。我确定它可能!我在这里遗漏了一些东西,对吧?

我想做这样的事情:在此处输入图像描述

有人知道该怎么做吗?

0 投票
1 回答
866 浏览

asp.net - 安装 HangFire 后无法运行我的 asp.net mvc Web 应用程序

我正在开发一个 asp.net MVC-5 Web 应用程序,并使用 nuget 我安装了 hangfire 工具:-

但是当我运行我的应用程序时,我得到了这个异常: -

第二个问题。如果我得到了上述错误修复,我如何使用 hangfire 在预定义的时间间隔调用操作方法。目前我在我的 glabal.asax 中定义如下: -

- - 编辑 - - - - -

现在,在添加了 startup.css 类之后,我在 global.asax 中定义了以下内容:-

主要是调用Home控制器下一个名为“ScanServer”的action方法。现在 ScanServer 是一个异步任务,具有以下定义:-

所以我的 global.asax 引发了这个错误:-

0 投票
1 回答
5740 浏览

c# - 如何使用 Hangfire 调用异步操作方法

我正在开发一个 asp.net mvc5 Web 应用程序,并且我安装了 Hangfire:-

之后,我创建了一个 startup.css 类,如下所示:-

然后在我的 global.asax 文件中,我尝试调用 2 个操作方法;Index ()& ScanServer(),如下:-

&

现在,当 Hangfire 尝试调用具有以下定义的 Index() 操作方法时:-

我收到了这个错误:-

JobStorage.Current 属性值尚未初始化。您必须在使用 Hangfire 客户端或服务器 API 之前设置它。

而当 Hangfire 尝试调用 ScanServer() 操作方法时,它是一个异步任务,具有以下定义:-

我收到了这个错误:-

不支持异步方法。请在后台使用它们之前使它们同步。

那么任何人都可以建议如何解决这两个问题吗?

谢谢

编辑

我在 Startup 类中写了以下内容:-

&这里是连接字符串:-

但我仍然收到此错误:-

JobStorage.Current 属性值尚未初始化。您必须在使用 Hangfire 客户端或服务器 API 之前设置它。

0 投票
1 回答
1399 浏览

c# - 配置和使用多个队列

我在配置和使用多个队列时遇到了麻烦。

以下是我的创业课内容:

服务器正确启动,从仪表板我可以看到队列。

但是当我尝试将进程排入队列时,hangfire 总是将作业设置到默认队列中。这是对该方法的调用:

这是方法实现:

我错过了什么?

0 投票
1 回答
191 浏览

c# - 将 Spring.Net 与 HangFire 一起使用

我们使用 spring.net 来管理依赖注入,但是当我们使用 hangfire 运行的方法时,依赖类为空。使用其他 IoC 容器还不是一种选择——请不要问为什么。顺便说一句,如果uploadDoc() 没有通过hangfire 运行,即在应用程序的线程中,spring.net 能够注入依赖类。

代码是这样的:

然后在spring xml中:

然后hangfire像这样执行线程:

任何想法为什么在hangfire线程中,spring.net的依赖注入不起作用?如果在应用程序的线程中运行,它可以工作。