C# hangfire作业取消不';不会发生
我有一个.NETCore3.1WebAPI项目。有一种方法可以调用单独的API来获取一些值 这是我的密码 定义实例变量C# hangfire作业取消不';不会发生,c#,asp.net-core-3.1,hangfire,C#,Asp.net Core 3.1,Hangfire,我有一个.NETCore3.1WebAPI项目。有一种方法可以调用单独的API来获取一些值 这是我的密码 定义实例变量 CancellationTokenSource tokenSource = new CancellationTokenSource(); 循环浏览我的价值观。有单独的方法,用户可以在需要时调用该方法 foreach (var no in nos) { BackgroundJob.Enqueue(() => webServiceCall(no, toke
CancellationTokenSource tokenSource = new CancellationTokenSource();
循环浏览我的价值观。有单独的方法,用户可以在需要时调用该方法
foreach (var no in nos)
{
BackgroundJob.Enqueue(() => webServiceCall(no, tokenSource));//loop and give jobs to hangfire
}
WebServiceCall实现
public async Task webServiceCall(int no, CancellationTokenSource tokenSource)
{
using (HttpClient client = new HttpClient())
{
try
{
var result = await client.GetAsync("https://localhost:44359/api/process/" + no, tokenSource.Token);
if (result.IsSuccessStatusCode)
{
var val = await result.Content.ReadAsStringAsync();
System.Diagnostics.Debug.WriteLine("Returned Value : " + val);
//logic code
}
}
catch (TaskCanceledException ex)
{
System.Diagnostics.Debug.WriteLine("HTTP Get request canceled." + ex.Message);
}
}
}
这段代码有效,我需要从单独的API中取消上面的批处理。我试过这样的东西,但不起作用
[HttpGet("CancellingJob")]
public async Task HagfireCancel()
{
tokenSource.Cancel();
}
但当我调用此函数时,所有进程都像往常一样发生,并且没有取消。。。。有人能帮我取消hangfire的工作吗
我使用了Hangfire1.7.0版本