我有一个Web应用程序,其中Page1.aspx执行task1,然后以fireAndforget方式将task2排入调度程序。
我正在使用Hangfire并且所有内容都已安装且正常工作但只有一次 doLongJob()
没有参数时(测试时)。然后我添加了一个参数(我将添加更多)。
之后我面对这些errors
Page1.aspx.cs
string strMsgID = //task1 returns a value;
BackgroundJob.Enqueue(() => doLongJob(strMsgID));
public void doLongJob(string strMsgID)
{
int status = //task2(strMsgID);
while( status == 2)
{
Thread.Sleep(10000);
status = //task2(strMsgID);
}
}
}
Startup.cs
using Hangfire;
using Microsoft.Owin;
using Owin;
[assembly: OwinStartup(typeof(erp.Startup))]
namespace erp
{
public class Startup
{
public void Configuration(IAppBuilder app)
{
app.UseHangfireDashboard();
app.UseHangfireServer();
}
}
}
的Global.asax.cs
protected void Application_Start(object sender, EventArgs e)
{
GlobalConfiguration.Configuration.UseStorage(new MySqlStorage("hangfire"));
}
答案 0 :(得分:0)
我遇到了类似的问题,原来是来自存储连接。
在你的代码中,我认为你传递一个字符串"hangfire"
,而你应该传递连接字符串
GlobalConfiguration.Configuration.UseStorage(new MySqlStorage(connectionString));
您可以通过hangfire here
找到更多MySQL配置选项答案 1 :(得分:0)
您是否仔细检查了失败作业的日期?
我有一个类似的问题-原来我只是从前看着同样失败的工作。因为这是最近一次失败的工作,所以我不认为要检查它是否比看起来老。