Повестка дня не запускается после перезапуска сервера
У меня есть программа "Повестка дня", которая отлично работает, когда я впервые ее определяю. Я вижу соответствующий документ в MongoDB, и все хорошо. Но когда сервер перезагружается или я нажимаю "Ctrl+C" и завершаю процесс, чтобы после повторного запуска моего приложения задание не запускалось впоследствии.
Об этой проблеме также было много обсуждений на git.
Я пытался:
1- Изящное обращение с SIGTERM
2. Запустите запрос на обновление MongoDB и установите для параметра lockedAt, lastModifiedBy, lastRunAt значение null при каждом запуске приложения.
Ни один из двух не работал для меня. В MongoDB я вижу, что задание не находится в заблокированном состоянии, поэтому я запутался, почему он не запускается, если приложение перезапускается?
1 ответ
Хорошо, если вы перепробовали все, вы могли бы просто обновить все задания, которые не удалось запустить, примерно так:
agendaJobs.update({
lockedAt: {
$exists: true
},
lastFinishedAt: {
$exists: false
}
}, {
$unset: {
lockedAt: undefined,
lastModifiedBy: undefined,
lastRunAt: undefined
},
$set: {
nextRunAt: new Date()
}
}, {
multi: true
})
Это один из способов решить проблему и в основном настроить все заблокированные задания для их перепланирования.
Это кстати один из предложенных подходов на git.
Это идет отсюда, если вы хотите, чтобы весь контекст.