我有一个api端点,该端点运行并在执行时完成一项工作。我想创建另一个端点,以了解通过先前端点的作业状态是否仍在运行。
1)我创建了一个带有bool属性的接口/类,并将该属性在方法的开始处设置为true,在方法结束时设置为false。在存储库和控制器中都注入了接口,但是即使在运行时,该值也始终为false。我认为依赖注入正在创建一个新实例。 2)我尝试在存储库中创建一个公共属性,并在方法结束时完成作业(在状态端点中称为存储库)后,将方法开始时的值设置为true和false。但这又被发现是错误的(下面的代码)
[routeof(start)]
[HttpPost]
public async Task<ActionResult> Start(){
var serviceProvider = GetServiceProvider().GetService<JobRepo>();
If(serviceProvider.Running){
return BadRequest();
}
await serviceprovider.Run();
Return Ok();
}
[HttpGet]
public ActionResult Status()
{
var serviceProvider = GetServiceProvider().GetService<JobRepo>();
return Ok(serviceProvider.Running.ToString())
}
在JobRepo中,
public bool Running {get; set;}
public void Run()
{
Running = true;
//logic to run the job and complete works fine
Running = false;
}
我还尝试创建具有bool属性的接口并将其注入回购和控制器中
请忽略语法和拼写错误。作业运行良好,运行时我需要该作业的状态为true,否则为false。 我期望bool属性在作业运行时为true,在作业完成时和作业开始之前为false。创建新实例时,我得到的值为false。从控制器端点调用时,如何获取存储库中正在运行的作业的状态?