通过api端点获取工作状态

时间:2019-05-20 20:30:35

标签: asp.net-core dependency-injection

我有一个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。从控制器端点调用时,如何获取存储库中正在运行的作业的状态?

0 个答案:

没有答案