У меня есть метод ниже в моем FileController:
[HttpPost]
[NoAsyncTimeout]
public ActionResult FileGenerator(FileViewModel model) {
...
_fileGenerator.CreateFile(model.Id,model.location);
...
}
Метод CreateFile определен ниже:
public void CreateFile(int residentId, string location){
...
var caller = new AsyncMethodCaller(GenerateFilesAsync);
caller.BeginInvoke(residentId,location, new
AsyncCallback(GenerateFilesCallBack));
...
}
Из того, что я знаю, AsyncMethodCaller и BeginInvoke для обработки файласоздание в другом потоке, чтобы он не блокировал интерфейс. Вышеупомянутый метод вызывается веб-приложением, и несколько пользователей могут отправлять запросы контроллеру Action FileGenerator - он будет обрабатывать процесс генерации файла одновременно (может быть в нескольких потоках).
Я хочу реализовать механизм дляобрабатывать запросы на основе FIFO - т. е. если пользователь обращается к веб-приложению и вызывает функцию FileGenerator во время создания этого файла - другой пользователь с другого ПК одновременно вызывает функцию, его запрос должен быть поставлен в очередь и выполненпосле генерации первого пользовательского файла.
Есть ли какой-либо механизм или метод в MVC, чтобы поставить в очередь запросы действий от пользователей?