Hangfire вызывает исключение истечения времени ожидания при выполнении кода SQL для оптимизации базы данных - ASP.NET Core

Я думаю, что это эквивалент того, что делает source.

import scala.sys.process._

              //send file contents to sh for interpretation
val tester = "/bin/cat /path/trial.sh".#|("/bin/sh").lineStream

Конечно, все намного проще, если trial.sh является исполняемым.

val tester = "/bin/sh -c /path/trial.sh".lineStream
0
задан fightstarr20 20 January 2019 в 14:58
поделиться

1 ответ

Проблема с тайм-аутом заключается в том, что один из запросов занимает больше времени, чем должен.

В .Net есть 2 тайм-аута, насколько я знаю, тайм-аут соединения ( ConnectionTimeout Property ) и тайм-аут команды ( CommandTimeout Property ). Оба тайм-аута по умолчанию составляют 30 секунд.

Я рекомендую вам:

  • Запустить ваши запросы в SQL Management Studio, чтобы иметь представление о времени, необходимом для выполнения обоих запросов в последовательностях, как показывает ваш код.
  • Установите время ожидания подключения и время ожидания команды в секундах по сравнению с предыдущим запуском в SQL Management Studio. Если тайм-аут продолжает появляться, попробуйте добавить больше времени к каждому тайм-ауту, добавьте 30 секунд к каждому тайм-ауту, пока не найдете минимально необходимое время для выполнения ваших запросов. Как только вы найдете его, добавьте 30 секунд к каждому тайм-ауту просто для уверенности.

Принимая участие в вашем коде, изменение будет примерно таким:

try {
        // Change CommandTimeout
        DbContext.Database.CommandTimeout = 120;
        // Rebuild Indexes
        DbContext.Database.ExecuteSqlCommand("EXEC sp_MSforeachtable \"ALTER INDEX ALL ON ? REBUILD WITH (ONLINE=OFF)\"");
        // Update Statistics
        DbContext.Database.ExecuteSqlCommand("EXEC sp_updatestats;");
    }
    catch (Exception ex) {
        result = ex.Message + Environment.NewLine + ex.StackTrace;
    }

Вы можете взглянуть на эту статью, она объясняет хорошие сценарии возможных причин тайм-аута https : //stackoverflow.com/a/8603111/2654879 .

Надеюсь, этот ответ поможет вам в вашем случае.

С уважением,

JB

0
ответ дан Juan Boada 20 January 2019 в 14:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: