Приложение Webjob vs web api, запущенное консольным приложением как веб-задание - PullRequest
0 голосов
/ 28 мая 2019

У меня есть веб-интерфейс API (.netcore), который я разместил в Azure в службе приложений.

У меня есть другое приложение, относящееся к вышеуказанному API-интерфейсу (в той же группе ресурсов), которое необходимо запустить.каждые несколько минут.

Моя путаница в том, что является лучшей практикой?

1) Написать приложение для веб-работы (.net framework) для второго приложения.

2) Написатьвторое приложение в виде API и написать консольное приложение для вызова API.Затем вызовите консольное приложение из веб-заданий в Azure.Но это будет означать вторую службу приложений в той же группе ресурсов (для второго API).

Есть ли разница в ценах между этими двумя?

Есть ли какое-либо преимущество одного над другим?

Есть ли лучший способ?

Обновление

Я выбрал второй вариант.

enter image description here

Есть ли какое-то преимущество, если я пойду с нижеприведенным (стоимость и код недостатков). Так что в той же службе приложений будет приложение wep, веб-работа для запуска API и другая веб-работа длячитать сообщения из очереди и выполнять обработку.

enter image description here

1 Ответ

0 голосов
/ 30 мая 2019

Существует несколько вариантов написания службы, которая запускается по таймеру:

  1. WebJobs - Это, по сути, консольные приложения, которые запускаются за кулисами для выполнения связанных заданий, от которых пользователям вашего API не нужно ждать (обработка фотографий является типичным примером) или которые нужно запускать по расписанию, как ваш случай использования.
  2. Функции Azure - функции аналогичны WebJobs, но упрощают масштабирование и абстрагирование от необходимости кодирования подключений ко многим другим службам. Они также могут иметь преимущества при выставлении счетов, если вы создаете службу приложений только для их запуска.
  3. Azure Logic Apps. Я думаю, что вам нужны WebJobs или Functions, но Logic Apps также могут выполнять работу по расписанию. В этом случае вы разрабатываете свой рабочий процесс либо в файле JSON, либо, скорее всего, в графическом интерфейсе. Если ваша работа не требует большого количества пользовательского кода, использование приложения логики означает, что время разработки сокращается и у вас остается на один кусок пользовательского кода для обслуживания.

Для цен:

  • Как веб-задания, так и функции могут быть присоединены к той же учетной записи службы приложений, что и ваш API, если у вас есть достаточно ресурсов для обработки дополнительной нагрузки. Так что никаких дополнительных затрат нет.
  • При желании вы можете заплатить за отдельную учетную запись службы приложений для веб-задания, но обычно они хранятся в той же учетной записи службы приложения, что и API.
  • Приложения функций могут запускаться с использованием специального типа учетной записи службы приложений, которая имеет план потребления . Это означает, что вместо ежемесячной платы вы платите за фактически используемые ресурсы.
  • Приложения логики не подключены к службам приложений и имеют выставление счетов на основе потребления, аналогичное функциям.
...