问题描述
如何取消基于IJobConsumer的长期运行的工作?
我尝试将CancelJob发布到公共汽车,但是没有结果。
[HttpGet]
public async Task < IActionResult > Get() {
var response = await _client.GetResponse < JobSubmissionAccepted > (new {
Id = "test"
});
await Task.Delay(TimeSpan.FromSeconds(3));
await _endpoint.Publish < CancelJob > (new {
JobId = response.Message.JobId,Reason = "I give up"
});
return Ok(response.Message.JobId);
}
解决方法
取消工作消费方后,会发出CancellationToken
的{{1}}属性的信号。令牌发出信号后,应由工作使用者的JobContext
方法正确取消。