Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在不实例化hangfire服务器的情况下删除hangfire作业_C#_Asp.net_Hangfire - Fatal编程技术网

C# 在不实例化hangfire服务器的情况下删除hangfire作业

C# 在不实例化hangfire服务器的情况下删除hangfire作业,c#,asp.net,hangfire,C#,Asp.net,Hangfire,我有两个独立的应用程序。一个使用HangFire并安排一个定期作业。另一个包含测试。测试是集成的,因此它们重用实际路径而不模仿任何东西。两个应用都可以访问相同的数据库 运行测试后,会出现由第一个应用程序创建的定期作业,这是理想的。然而,由于测试是集成的-它是在生产数据库上运行的,所以在测试完成后,我想删除创建的重复作业。我想在测试中处理删除 我想知道我是否可以在第二个应用程序中配置hangfire类,以允许我删除第一个应用程序创建的重复作业 如果我只是在第二个应用程序中配置一个hangfire使

我有两个独立的应用程序。一个使用HangFire并安排一个定期作业。另一个包含测试。测试是集成的,因此它们重用实际路径而不模仿任何东西。两个应用都可以访问相同的数据库

运行测试后,会出现由第一个应用程序创建的定期作业,这是理想的。然而,由于测试是集成的-它是在生产数据库上运行的,所以在测试完成后,我想删除创建的重复作业。我想在测试中处理删除

我想知道我是否可以在第二个应用程序中配置hangfire类,以允许我删除第一个应用程序创建的重复作业

如果我只是在第二个应用程序中配置一个hangfire使用相同的SQL server,那么将实例化一个新的HangFireServer,它将开始“抓取”作业以执行

我可以运行SQL查询来删除作业,但我希望避免这种情况


我希望我解释得足够清楚

假设您使用id创建了定期作业,您只需执行RecurringJob.RemoveiExists(“id”),如文档页所述:

在Hangfire中,只要您先填充JobStorage,您就可以删除/添加作业,无论是定期作业还是后台作业

可能有两种设置方法

JobStorage.Current = new SqlServerStorage("Your ConnectionString");; 


然后您现在可以使用您的
RecurringJob.removiefexists(“id”)
,无需实例化Hangfire服务器。假设您在提交其他应用程序之前已经创建了Hangfire方案。

是的,我知道id。您链接的内容无法回答我的问题。我不知道如何在第二个应用程序中配置HangFire,因此它不会做任何事情,但同时允许我使用
RecurringJob.RemoveiExists(“id”)
是否使用数据库存储作业?因为我认为您可以引用Hangfire,使用正确的数据库配置它,然后删除作业。你可以考虑把吊挂在一个库中,并从你想用它的地方使用它。正如我在问题中所说的,是的,我确实使用了DB。两个应用程序都可以访问此数据库。你是说如果我写下
GlobalConfiguration.Configuration.UseSqlServerStorage(connectionString)app.UseHangfireServer()那么我仍然可以删除一份工作?很抱歉反应太晚-很高兴你找到了:)这正是我要找的。谢谢
GlobalConfiguration.Configuration.UseSqlServerStorage("Your ConnectionString");