У меня есть Webjob, связанный с веб-сайтом, который настроен на непрерывный запуск, и все, что он делает, смотрит очередь на сообщение и обрабатывает его.
Мой сайт находится в режиме совместного доступа и практически не имеет трафика в настоящий момент, поэтому я установил фиктивную службу, которая каждые 1 минуту запрашивает домашнюю страницу, чтобы веб-сайт не закрывался как часть этого тестирования, и что швов работать должным образом, и я могу заметить, что сам сайт не отключается. однако этот веб-сайт продолжает закрываться примерно за час, если я не перейду на портал Azure Management и не посмотрю статус webjob. Момент Я туда иду, он снова запускается, а затем выключается через несколько минут до часа.
файл журнала для этого веб-сайта показывает примерно следующее:
[02/13/2015 09:19:45 > 4660f6: INFO] Job host started
[02/13/2015 10:19:41 > 4660f6: SYS INFO] WebJob is still running
[02/13/2015 10:20:35 > 4660f6: SYS INFO] WebJob is stopping due to website shutting down
[02/13/2015 10:20:35 > 4660f6: SYS INFO] Status changed to Stopping
[02/13/2015 10:20:35 > 4660f6: INFO] Job host stopped
[02/13/2015 10:20:35 > 4660f6: SYS INFO] Status changed to Success
[02/13/2015 10:20:35 > 4660f6: SYS INFO] Status changed to Stopped
Я вижу, что мой сайт все еще работает и возвращает мне домашнюю страницу, но сама работа останавливается.
теперь, когда я вхожу на портал управления для поиска статуса, я вижу это в журналах:
[02/13/2015 10:20:35 > 4660f6: SYS INFO] Status changed to Success
[02/13/2015 10:20:35 > 4660f6: SYS INFO] Status changed to Stopped
[02/13/2015 14:56:15 > 4660f6: SYS INFO] Status changed to Starting
[02/13/2015 14:56:17 > 4660f6: SYS INFO] Run script 'WebJobs.exe' with script host - 'WindowsScriptHost'
[02/13/2015 14:56:17 > 4660f6: SYS INFO] Status changed to Running
[02/13/2015 14:56:19 > 4660f6: INFO] Found the following functions:
[02/13/2015 14:56:19 > 4660f6: INFO] WebJobs.NotificationsProgram.ProcessQueueMessage
[02/13/2015 14:56:19 > 4660f6: INFO] WebJobs.NotificationsProgram.PublishNotification
[02/13/2015 14:56:19 > 4660f6: INFO] WebJobs.NotificationsProgram.ProcessMessages
[02/13/2015 14:56:19 > 4660f6: INFO] Job host started
Любые идеи относительно того, как я могу убедиться, что Webjob активен, пока активен веб-сайт? или, по крайней мере, сделать так, чтобы веб-сайт начал работу с веб-сайтом, когда он вернулся в рабочее состояние.
ОБНОВЛЕНИЕ 1
Мой webjob сам очень простой, как показано ниже:
static void Main(string[] args)
{
JobHost host = new JobHost();
host.RunAndBlock();
}
и триггерные функции выглядят примерно так:
public static void WriteLogPOCO([QueueTrigger("logqueue")] BlobInformation blobInfo, TextWriter logger)
{
logger.WriteLine("Queue message refers to blob: " + blobInfo.BlobName);
}
есть ли что-то, что я должен сделать здесь, чтобы указать, что эта работа должна соответствовать жизненному циклу веб-сайта, т.е. запускаться каждый раз при запуске веб-сайта.
ОБНОВЛЕНИЕ 2
Я попытался посмотреть Process Explorer, и я вижу одну из трех вещей, когда WebJobs остановлены. Я не знаю, как просматривать журналы заданий, не переходя на портал управления, поэтому не знаю фактических журналов в этот момент времени.
Но я уверен, что Job не работает, поскольку он не обрабатывает никаких сообщений из очереди, пока я не перейду на портал управления.
результат pingdom, как показано ниже, который показывает, что сам сайт работает без перерыва:
Отношения Киран