SPJobDefinition.Execute работает, но не показывает, что он запущен в Central Admin
-
06-07-2019 - |
Вопрос
Я использую SPJobDefinition.Execute, чтобы явно запустить задание таймера для небольшого тестирования. Задание выполняется, но время последнего выполнения не изменилось ни в «Статусе задания таймера», ни в «Определениях задания таймера». Поскольку это не выполнялось раньше, его принудительное выполнение даже не отображается в «Статус задания таймера». Я помню, что он обновлял время последнего запуска внутри центрального администратора, когда я в последний раз пытался это сделать. Таким образом, либо что-то сломано, и оно не обновляет статус, либо оно не обновляет статус в соответствии с дизайном, и я ошибаюсь из-за этого в последний раз.
Решение
Я обнаружил, что OWSTIMER.exe не завершает выполнение. Я написал консольное приложение, которое выполняло вызов SPJobDefinition.Execute, и оказалось, что Execute не планирует его запуск в тот или иной момент, но фактически загружает dll для задания и запускает его в процессе. Я мог бы предположить, что побочным эффектом этого является то, что он не запускается по расписанию, и поэтому Central Admin не показывает, что он работал.
Другие советы
У меня была похожая проблема, решение состояло в том, чтобы перезапустить службу «Таймер SharePoint 2010» (чтобы перезагрузить библиотеку заданий).