问题标签 [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.
c# - ASP.NET 和多线程后台工作者
我正在开发一个可以在后台发送大量电子邮件的 Web 应用程序。
要在后台运行任务,我将使用 HostingEnviroment.QueueBackgroundWorkItem 或一些库,例如 Hangfire。因为我希望我的邮件程序尽可能快地运行它的工作,所以我使用多线程,因此在上述工具下运行的主线程也会创建许多新线程。众所周知,ASP.NET 可以出于多种原因杀死后台工作人员。
- .NET 杀死所有这些线程的顺序是什么?
- 父/子线程有没有办法知道子/父线程被中止?
- 在 .NET 完全关闭它之前,我必须在这些线程中处理多长时间?
c# - Hangfire 和 VB.NET - 获取应用程序启动类中配置的内容
本周早些时候,我遇到了 Scott Hanselman 关于 ASP.NET 中的后台处理的帖子 ( http://www.hanselman.com/blog/HowToRunBackgroundTasksInASPNET.aspx )。我过去写过例程,它会每隔一段时间自动点击一个页面来运行一些任务,但是这个后台处理的想法是我从未考虑过的,而 Hangfire ( http://hangfire.io/ ) 看起来非常适合我的背景处理需求(主要是发送电子邮件)。
为了让 HangFire 运行(通过 NuGet 安装后),我需要在 Application Startup 类中启动它。该文档提供了我不确定如何转换为 VB.NET 的 C# 代码。它看起来像一些 lambda 代码,我通过使用 LINQ 对它有些熟悉,但我无法快速弄清楚这一点。
这就是我要开始的地方,基本上几乎什么都没有,我知道...... :)
对于这里发生的事情以及如何将此代码移植到 VB.NET,我将不胜感激。谢谢!
c# - 在没有 HTTP 请求的情况下使用 PerRequestLifetimeManager 解析类型
我有一个将 IoC 与 Unity 结合使用的 MVC 应用程序,并且我有一个DbContext
使用PerRequestLifetimeManager
. 该对象通过工作单元实现注入控制器。
到目前为止一切正常,该应用程序具有相当数量的模型和控制器。现在我最近想做的是为这个应用程序添加一些自动化任务,为此我想使用HangFire。
我在我的项目中设置了这个库并创建了一个简单的任务,我想在其中调用一个需要DBContext
.
并MyTask()
定义如下
任务管理器需要一个 DBContext 实例(通过工作单元对象)
现在我遇到的问题是,每当任务运行时,我都会收到异常消息PerRequestLifetimeManager can only be used in the context of an HTTP request
。
有没有办法可以在没有 HTTP 请求的情况下注入这个对象,或者如何更改我的 Unity 配置以支持我的 HangFire 任务?
nuget - 使用 NuGet 安装 hangfire 时出错
当我尝试在 Visual Studio 2010 中的项目上安装 Hangfire 时出现以下错误
外部包不能依赖于以项目为目标的包
我尝试单独安装 Newtonsoft.Json 以查看是否解决了它,但它没有帮助。
c# - Hangfire 安装/启动
我今天一直在试验 Hangfire。它看起来像一个很酷的产品。不幸的是,我的环境不是最新的。我有 VS 2010、.Net 4.0 和 SQLServer 2005。我创建了一个新项目并安装了 Hangfire、Hangfire.Core、Hangfire.NET40.SQLServer、OWIN,谁知道还有什么。该项目现在没有错误。所有引用均已解决。
我从StackOverflow获得了很多见解,并尝试按照说明配置 Startup 类。
我还创建了一个新的 SQL 用户和空数据库供 Hangfire 使用。在 Web.Config 文件中,我添加了这个连接字符串:
我想我已经涵盖了所有基础,但是在运行时调用 UseSqlServerStorage 返回一个错误:
我没有成功搜索文件“NoOpLogger.cs”。由于我的项目是 VB,我不确定为什么或如何出现这种情况。
我很感激这方面的帮助。
asp.net-mvc - Hangfire 作业中的 Url.Action
我有一些使用 Hangfire 创建的经常性工作,在这些工作中我想使用 Url.Action。有可能的?还是我必须手动创建 URL。
c# - 如何从字符串为 Lambda 表达式动态创建方法
我的最终目标是创建一个函数,该函数将动态地将方法名称传递给 Hangfire 库中的类。
例如,这是有效的非动态代码:
AddOrUpdate 的第一个参数的类型是Expression<Action>
。我的第一步是使用反射来动态插入函数名:
当我检查 Hangfire 仪表板时,似乎这个表达式被评估为MethodBase.Invoke
. 所以我需要帮助动态传递方法名称。
这可能足以回答我的问题,但我采取的另一条路径是尝试为论点生成整个表达式。
在这种情况下,我收到异常 {“静态方法需要空实例,非静态方法需要非空实例。\r\n参数名称:方法”}。我正在努力,但不确定这是否是我应该走的路。我整天都在做这件事,所以我希望有人能帮助我加快学习速度。
sql-server - Hangfire VB 启动时抛出 SQL 异常
有关一些背景信息,请参阅此 StackOverflow 问题。Hangfire 看起来对我来说是正确的解决方案,但我无法让它工作。我的开发环境是带有 SQL 2005 的 VB 2010。不是最新的工具!
我从上面的文章中借用了将原始 C# 代码转换为 VB 的代码。显然,此代码有效,但是当我运行它时,它会在调用 config.UseSqlServerStorage("HangfireDb") 时引发 SQLException 错误并显示消息“列、参数或变量 #5:找不到数据类型 datetime2”。
.net - Hangfire DbContext 不工作
我第一次尝试设置 Hangfire 并遇到问题。毫无疑问,我的开发环境是部分原因。我正在使用 VB 2010、SQL 2005 和 .NET Framework 4.0。我已经安装了一堆软件包来使用 Hangfire,包括 EntityFramework。
这是让我难过的代码。它位于我的 MVC 项目的 Models 文件夹中。
请注意,我有一个 System.Data.Entity 的 Imports 语句。System.Data.Entity.dll 的 .NET 4.0 版本包含在我的项目参考中。但是,编译器抱怨未定义类型“DbContext”!
c# - Hangfire 没有运行任务,尽管它们在数据库中
我不确定 Hangfire 发生了什么,但调用 BackgroundJob.Enqueue() 会将作业添加到数据库中作为“已调度”,但似乎什么也没发生。方法代码似乎没有运行。在调试器中没有断点被击中,并且在我的内部工作日志中没有打印任何内容。