public void CompletRequestActionItemExecutionTasks()
{
if (_obj.AppealCloseddev == true)
{
var assignments = ActionItemExecutionAssignments.GetAll(a => a.Created>= _obj.Created).ToList();
foreach (var item in assignments)
{
var document = item.DocumentsGroup.OfficialDocuments.FirstOrDefault();
if (document != null && document == _obj)
item.Complete(Sungero.RecordManagement.ActionItemExecutionAssignment.Result.Done);
}
}
}
Суть функции: функция смотрит, какие задания связаны с документом _obj, и завершает их. Чтобы определить, принадлежит ли задание данному документу, нужно посмотреть, какой документ лежит во вложение в задании(по другому определить это никак нельзя). Из-за того, что заданий очень много, функция падает по ошибке: Сервер прекратил обработку запроса по таймауту.
Как можно оптимизировать данную функцию? И как вообще обычно поступают в таких случаях?
Время таймаута увеличивать не хочется, оно и так 60 сек., да и количество заданий в базе растет каждый день.