Как включить файл settings.job при публикации (из Visual Studio) Azure WebJob?

У меня есть непрерывный WebJob, который я хотел бы настроить, чтобы иметь только один экземпляр.

Это достигается установкой параметра "{" is_singleton ": true}" в файле settings.job.

Как запустить непрерывный WebJob в качестве Singleton

То, с чем я борюсь, - это развертывание такого файла.

В статье, о которой я рассказывал, вы должны вручную поместить этот файл в корень папки WebJob.

"После того, как вы добавили эту строку, сохраните файл settings.job в корневую папку для непрерывного веб-приложения".

Этот каталог не будет существовать до момента развертывания, поэтому сразу после развертывания потенциально может быть запущено несколько экземпляров, так как он не имеет этого файла настроек. Поэтому мне нужно добавить что-то в WebJob, чтобы проверить, существует ли единственный параметр экземпляра, а если нет, то он не запускается?

Это кажется хромым...

В той же статье предлагается использовать API WebJobs, но опять же это не встроено в процесс публикации, поэтому это будет ручной шаг или какой-то нечетный код, который запускается в самом WebJob.

Я чувствую, что мне не хватает способа заставить это работать с процессом публикации.

У меня был поиск в Google, который ищет людей, которые сделали то же самое, но я мало нахожу.

Ответ 1

Попробуйте следующее:

  • В VS добавьте файл settings.job в корень вашего консольного приложения WebJobs
  • В свойствах файла пометьте его как "Копировать", если он более поздний (или "Копировать всегда" )

И он должен быть развернут. Найдите полный образец, который делает это здесь: https://github.com/davidebbo-test/WebAppWithWebJobsVS.

Ответ 2

Я добавил settings.job в мои соответствующие папки bin для каждого веб-задания + параметр "Копировать всегда" - затем выполнил публикацию Azure из Visual Studio. Заработал шарм.

Нужно перезапустить приложение Azure для этого.