Grow with AppMaster Grow with AppMaster.
Become our partner arrow ico

Использование планировщика задач в AppMaster

Использование планировщика задач в AppMaster

Планировщик задач в бэкенде приложения AppMaster, как и в классическом случае бэкенда, создает повторяющиеся сценарии. Например, когда вам нужно выполнить определенное действие по расписанию. Классическим примером таких задач является пример очистки временных файлов на сервере, еженедельное резервное копирование, генерация отчетов по заданному алгоритму и т.д.

Рассмотрим пример использования планировщика задач в бэкенде приложения AppMaster. Предположим, вы хотите построить процесс, который каждое утро в 9.00 будет отправлять пользователю погоду на номер его мобильного телефона.

Таким образом, задача разбивается на несколько логических этапов:

  • Установка и настройка модуля для отправки мобильных сообщений
  • Создание и настройка API-процесса внешнего запроса
  • Настройка планировщика в бэкенде приложения.

1. Установка и настройка модуля для отправки мобильных сообщений.Модуль Nexmo позволяет интегрировать в приложение AppMaster возможность отправки SMS-сообщений на выбранный номер.

Nexmo module

  • API Key - ключ API, который можно получить в аккаунте Nexmo(https://dashboard.nexmo.com/settings);
  • API Secret - закрытый ключ, который используется вместе с API-ключом для идентификации пользователя. Вы также можете получить его в своем аккаунте Nexmo(https://dashboard.nexmo.com/settings);
  • С номер - номер, указанный при регистрации в аккаунте Nexmo.

Следующие бизнес-процессы устанавливаются автоматически при установке модуля:

  • Nexmo.Send SMS - позволяет отправлять сообщения на указанный номер через

модуль Nexmo:

  • Phone [телефон] - номер телефона, на который будет отправлено сообщение;
  • Содержание [строка] - текстовое сообщение;

Nexmo Send SMS

2. В качестве источника погодных данных будет использоваться бесплатный веб-ресурс OpenWeather API(https://openweathermap.org/api).Первый шаг - создание шаблона API внешнего запроса. Шаблоны API-запросов представлены в разделе Бизнес-процесс на вкладке Внешние API-запросы. Чтобы создать новый шаблон, нажмите на кнопку Создать API-запрос.

Create API request AppMaster

Тип запроса: GET

Адрес запроса: https://api.openweathermap.org/data/2.5/weather

Параметры запроса:

  • Lat [string] - широта
  • Lon [string] - долгота
  • Appid [string] - API-ключ OpenWeather.

В рамках данной задачи нас интересуют только несколько полей тела ответа в основной части(https://openweathermap.org/api/one-call-3).

  • Temp [float] - температура
  • Temp_min [float] - минимальная температура
  • Temp_max [float] - максимальная температура
  • Давление [float] - давление
  • Влажность [float] - влажность

Request GET AppMaster

3. Перед настройкой планировщика задач необходимо создать бизнес-процесс, который будет получать информацию о погоде через API. Бизнес-процесс выглядит следующим образом:

Business Process no-code AppMaster

  • Make Weather Query Model In - создает виртуальную модель параметров запроса. Lon, lat - координаты нужного местоположения, appid - API-ключ сервиса OpenWeather;
  • API Request: Weather - бизнес-процесс, отвечающий за взаимодействие с API OpenWeather.
  • Expand Weather: Body Model Out - необходим для развертывания модели ответа Body

Business Process AppMaster

  • Expand Weather: Body Model Out_main - расширяет основную модель тела запроса-ответа Body для получения температуры (temp).
  • To String - преобразует значение поля temp в строковый тип;
  • Nexmo: Send SMS - отправляет сообщение с информацией о температуре (Content) на указанный номер телефона (Phone).

Настройте планировщик в разделе бизнес-процессов на вкладке Планировщик.

Настройки планировщика на вкладке Планировщик различаются в зависимости от их типа.

Рассмотрим каждый из них подробнее

1. Ежедневно - позволяет настраивать ежедневные расписания

Scheduler settings AppMaster

  • Время - определяет время в UTC+0, в которое планировщик будет запускать выбранный БП;
  • Дни недели - определяет дни недели, по которым будет работать планировщик;
  • Автоматически запускать - если установлено значение True, то новый БП не будет запускаться, если предыдущий не был завершен. Значение по умолчанию: Ложь.
  • Автоматически повторять - автоматически перезапускает процесс, если он был прерван/не был успешно запущен.
Попробуйте no-code платформу AppMaster
AppMaster поможет создать любое веб, мобильное или серверное приложение в 10 раз быстрее и 3 раза дешевле
Начать бесплатно

Повторить обработку неудачных элементов - количество попыток перезапустить процесс;

Wait before each retry attempt - время задержки перед каждой попыткой перезапустить процесс;

  • Force quit - принудительно завершить процесс, если он не завершен в течение нескольких секунд. True, по умолчанию. Количество секунд до завершения - 3 секунды, по умолчанию.

2. Monthly - ежемесячный планировщик

scheduler monthly planner

  • Время - определяет время в UTC+0, в которое планировщик запустит выбранный БП;
  • Дни недели - состоит из двух настроек:

Частота повторения:

  • Каждый первый
  • Каждый второй
  • Каждый третий
  • Каждый четвертый
  • Текущий день

День недели - определяет день недели

  • Месяц - определяется месяц
  • Автозапуск - если установлено значение True, новый БП не будет запущен, если он не будет завершен в ближайшее время. Значение по умолчанию: Ложь.
  • Автоматически повторять попытку - автоматически перезапускает процесс, если он был прерван/не запущен

Повторная обработка неудачных элементов - количество перезапусков процесса;

Подождать перед каждой повторной попыткой - время задержки перед каждой попыткой перезапустить процесс;

  • Force Quit - завершает процесс, если он не завершен в течение нескольких секунд. По умолчанию - True. Количество секунд до завершения - 3 секунды, по умолчанию.

3. Периодически - позволяет гибко настроить периодичность работы планировщика

scheduler periodically no code

  • Каждый - возможность установить повторяемость каждые N секунд/минут/часов/дней. По умолчанию: каждый 1 час.
  • Автоматически запускать - если установлено значение True, новый БП не будет запускаться, если предыдущий не был завершен. Значение по умолчанию: Ложь.
  • Автоматически повторять - автоматически перезапускает процесс, если он был прерван/не был успешно запущен.

Повторить обработку неудачных элементов - количество попыток перезапустить процесс;

Wait before each retry attempt - время задержки перед каждой попыткой перезапустить процесс;

  • Force quit - принудительно завершить процесс, если он не завершен в течение нескольких секунд. True, по умолчанию. Количество секунд до завершения - 3 секунды, по умолчанию.

4. После запуска приложения - планировщик одноразовых задач

scheduler after Starting App

  • Задержка - определяет задержку между запуском приложения и стартом. По умолчанию - 0 сек
  • Автоматически повторять попытку - автоматически перезапускает процесс, если он был прерван/не был запущен успешно

Retry failed items processing - количество попыток перезапустить процесс;

Wait before each retry attempt - время задержки перед каждой попыткой перезапустить процесс;

  • Force quit - принудительно завершить процесс, если он не завершен в течение нескольких секунд. True, по умолчанию. Количество секунд до завершения - 3 секунды, по умолчанию.

5. Перед завершением приложения - запускать планировщик каждый раз, когда приложение завершается.

scheduler no code

  • Автоматически повторять попытку - автоматически перезапускает процесс, если он был прерван/не был успешно запущен

Retry failed items processing - количество попыток перезапустить процесс;

Wait before each retry attempt - время задержки перед каждой попыткой перезапустить процесс;

  • Force quit - принудительно завершить процесс, если он не завершен в течение нескольких секунд. True, по умолчанию. Количество секунд до завершения - 3 секунды, по умолчанию.

На вкладке Params настроек планировщика также можно передать параметры на вход BP при его запуске планировщиком:

Params no-code

В нашем примере настройки планировщика выглядят следующим образом:

  • Сообщения будут отправляться каждый день в 9 утра по UTC+0
  • Автоматически пытается перезапустить процесс 3 раза с задержкой в 10 минут между попытками, если процесс не запустился сразу;
  • Принудительно завершает процесс, если он не был завершен в течение трех секунд.

scheduler no-code

Наше приложение живет и работает в бэкенде, поэтому, чтобы оно работало, достаточно его опубликовать.

Похожие статьи

Как разработать масштабируемую систему бронирования отелей: полное руководство
Как разработать масштабируемую систему бронирования отелей: полное руководство
Узнайте, как разработать масштабируемую систему бронирования отелей, изучите архитектуру, ключевые функции и современные технологические решения для обеспечения бесперебойного обслуживания клиентов.
Пошаговое руководство по разработке платформы управления инвестициями с нуля
Пошаговое руководство по разработке платформы управления инвестициями с нуля
Изучите структурированный путь создания высокопроизводительной платформы управления инвестициями, использующей современные технологии и методологии для повышения эффективности.
Как выбрать правильные инструменты мониторинга здоровья для ваших нужд
Как выбрать правильные инструменты мониторинга здоровья для ваших нужд
Узнайте, как выбрать правильные инструменты мониторинга здоровья, соответствующие вашему образу жизни и потребностям. Подробное руководство по принятию обоснованных решений.
Начните бесплатно
Хотите попробовать сами?

Лучший способ понять всю мощь AppMaster - это увидеть все своими глазами. Создайте собственное приложение за считанные минуты с бесплатной подпиской AppMaster

Воплотите свои идеи в жизнь