C# 在.NET控制台应用程序中将任务提交到Hangfire后如何执行代码
我已经在.NET控制台应用程序中实现了Hangfire,它运行良好。在将任务(在我的例子中是下载文档)提交到Hangfire之后,我需要更新数据库中任务的状态(文档下载状态),为此,我有“UpdateDocumentStatus();”方法,但它从未执行过(在Console cmd窗口中输入内容时执行),因为我有Console.ReadKey();在节目中。如果我删除Console.ReadKey();吊火不起作用 请向我推荐Console.ReadKey()的替代方案;让Hangfire执行我的“UpdateDocumentStatus();”C# 在.NET控制台应用程序中将任务提交到Hangfire后如何执行代码,c#,.net,hangfire,C#,.net,Hangfire,我已经在.NET控制台应用程序中实现了Hangfire,它运行良好。在将任务(在我的例子中是下载文档)提交到Hangfire之后,我需要更新数据库中任务的状态(文档下载状态),为此,我有“UpdateDocumentStatus();”方法,但它从未执行过(在Console cmd窗口中输入内容时执行),因为我有Console.ReadKey();在节目中。如果我删除Console.ReadKey();吊火不起作用 请向我推荐Console.ReadKey()的替代方案;让Hangfire执行我
首先,Hangfire是一个基于队列的系统。所有任务都在后台进程中执行。这需要服务器持续运行以拾取作业 接下来,您需要了解
使用
做了什么。使用将为对象提供范围。这意味着在using语句结束时,对象将被释放
就你而言
- BackgroundJobServer启动
- 读键
- dispose BackgroundJobServer
GlobalConfiguration.Configuration.UseMemoryStorage();
BackgroundJob.Enqueue(() => DownloadDocument());
var server = new BackgroundJobServer())
UpdateDocumentStatus();
Console.ReadKey();
谢谢,@Kevin,谢谢你的回答。@Srinivas解决了你的问题,还是你自己已经解决了?我已经解决了这个问题。
GlobalConfiguration.Configuration.UseMemoryStorage();
BackgroundJob.Enqueue(() => DownloadDocument());
var server = new BackgroundJobServer())
UpdateDocumentStatus();
Console.ReadKey();