2017-01-18 5 views
0

У меня есть служба, которая работает как Azure Webjobs и масштабируется по мере необходимости, это длительный процесс, который может занять несколько часов для каждого сообщения в очереди. Он отлично работает, единственная проблема заключается в том, что он полагается на третью сторону для конечной точки отдыха, которая из-за различных проблем может быть недоступна.Azure WebJobs Sleep

Мой код перехватывает эту ошибку, и мне нужно его ждать 10-15seconds, прежде чем пытаться снова, и я использовал

Thread.Sleep(10000); 

Это работает локально, но когда в лазури как webjob кажется Приостановить все экземпляры webjob не только тот, который нужно ждать.

Любые идеи относительно того, почему? Я думаю, что каждый экземпляр находится в потоке различий, но я относительно новичок в WebJobs, поэтому не может быть на 100% уверен, поэтому некоторые рекомендации по этому вопросу также будут хороши.

+0

Вы пытались использовать метод async/await? – Thomas

ответ

0

Когда вы масштабируете план обслуживания приложений, все экземпляры WebJob запускаются независимо. Если они все будут спать одновременно, возможно, остальная конечная точка вообще недоступна в течение этого времени, заставляя всех их спать.

+0

Да, я бы подумал, что слишком, но потом я протестировал и обнаружил, что один из Джобсов не использовал конечную точку, поскольку он был занят хрустом данных, а конечная точка была отключена, поэтому другое задание было Thread, Sleep, и все они остановились, поэтому Job который хрустнул, потерял его данные и, следовательно, мою озабоченность и этот вопрос. Имеет ли это смысл? здесь уже поздно ... –

 Смежные вопросы

  • Нет связанных вопросов^_^