Opisz to lepiej bo ciężko zrozumieć o co ci chodzi.
Jasne :)
To tak mam 4 endpointy:
[HttpPut("")]
[ProducesResponseType(typeof(CommandResponse), 200)]
public async Task<IActionResult> DoSomething3([FromBody] Model<TESTOWY1> model)
{
return await Handle(async () => HandleServiceResult(await _missionService.DoSomething(model, ZoneType.TEST4)));
}
[HttpPut("")]
[ProducesResponseType(typeof(CommandResponse), 200)]
public async Task<IActionResult> DoSomething2([FromBody] Model<TESTOWY2> model)
{
return await Handle(async () => HandleServiceResult(await _missionService.DoSomething(model, ZoneType.TEST3)));
}
[HttpPut("")]
[ProducesResponseType(typeof(CommandResponse), 200)]
public async Task<IActionResult> DoSomething1([FromBody] Model<TESTOWY3> model)
{
return await Handle(async () => HandleServiceResult(await _missionService.DoSomething(model, ZoneType.TEST2)));
}
[HttpPut("")]
[ProducesResponseType(typeof(CommandResponse), 200)]
public async Task<IActionResult> DoSomething([FromBody] Model<TESTTOWY4> model)
{
return await Handle(async () => HandleServiceResult(await _missionService.DoSomething(model, ZoneType.TEST1)));
}
Te endpointy wykonują tą samą metodę DoSomething wykonanie jej zajmuję około 3 minut.
Te 4 endpointy mogą zostać wywołane w tym samy czasie.
Ale sam jeden endpoint może zostać wywołany dopiero wtedy gdy zakończy się działanie wcześniejszego wywołania.
Jak z takimi założeniami mam je zaprojektować jak no to wszystko mam patrzeć pod kątem wielowątkowym ? :)