У меня проблема с дублирующимися данными.
У меня есть клиент, который вызывает API несколько раз, чтобы заполнить какую-то сетку.
Экземпляр API - это служба, которая проверяет, существуют ли данные, а если нет, то создает все данные.
Проблема заключается в том, что когда метод, который создает данные, является тяжелым и занимает много времени. Таким образом, 2 метода выполняются одновременно, и оба сохраняют данные, создавая дубликаты.
Могу ли я поставить вызов API в очередь и выполнить их по одному?
Или есть другой способ добиться этого?
Вот код API
[Produces("application/json")]
[Route("api/v1/Combinations")]
public class CombinationsController : Controller
{
private readonly ICommonService _CommonService;
private readonly ILogger _logger;
public CombinationsController(ICommonService CommonService,
ILogger<CombinationsController> logger)
{
_logger = logger;
_CommonService = CommonService;
}
[HttpPost("GenerateCombinationsByAttributes",Name ="GenerateCombinationsByAttributes")]
public async Task<IActionResult> GenerateCombinationsByAttributes([FromBody] List<Guid> attributeIds)
{
if (attributeIds == null || attributeIds.Count == 0 || attributeIds.Contains(Guid.Empty))
return BadRequest();
var ret = await _CommonService.GenerateCombinationByAttributesList(attributeIds);
return Ok();
}
}