Уведомления о расчетном времени прибытия (ETA) с использованием Java и сервлетов

Автор: | 08.08.2026

Такие компании, как Uber, TaskRabbit и Instacart, построили целую индустрию на том факте, что мы, клиенты, любим заказывать вещи *мгновенно*, где бы мы ни находились. Ключ к работе этих сервисов? Уведомление клиентов об изменениях.

В этом руководстве мы создадим систему уведомлений для вымышленного сервиса прачечной по запросу *Laundr.io* с использованием Java и сервлетов.

Начнем!

На экране водителя отображаются две кнопки, которые позволяют курьеру инициировать уведомления: одна для забора заказов, а другая для их доставки.

Это означает, что у нас будет два случая для обработки:

— Курьер забирает белье для доставки (

`/pickup`

) — Курьер прибывает к дому клиента (

`/deliver`

)

В рабочем приложении мы, вероятно, инициировали бы второе уведомление, когда курьер физически находится рядом с клиентом, используя GPS.

(В данном случае мы просто используем кнопку.)

Давайте посмотрим, как использовать клиент Twilio REST API для отправки уведомлений.

Здесь мы создаем вспомогательный класс с аутентифицированным клиентом Twilio REST API, который мы можем использовать в любое время, когда нам нужно отправить текстовое сообщение.

Мы инициализируем его с нашими учетными данными Twilio Account Credentials, хранящимися в качестве переменных среды. Вы можете найти Auth Token и Account SID в консоли:

Далее мы рассмотрим, как мы обрабатываем запрос на уведомление.

Этот код обрабатывает HTTP-запрос `POST`, инициированный курьером.

Он использует наш класс `MessageSender` для отправки SMS-сообщения на номер телефона клиента, который мы зарегистрировали в нашей базе данных. Просто!

Далее давайте подробнее рассмотрим, как мы отправляем SMS.

Здесь мы демонстрируем фактическую отправку SMS или MMS.

Думаете, нужна фотография одежды? Хорошая идея.

Вы можете передать дополнительный URL-адрес медиа:

«`

.setMediaUrl(«http://lorempixel.com/image_output/fashion-q-c-640-480-1.jpg»)

«`

В дополнение к обязательным параметрам (и дополнительным медиа) мы можем передать URL-адрес `StatusCallback`, чтобы узнать, было ли сообщение доставлено.

Обновления статуса сообщения интересны — давайте рассмотрим их подробнее.

Twilio будет отправлять `POST`-запрос к этому сервлету каждый раз, когда статус нашего сообщения изменится на один из следующих: `queued`, `failed`, `sent`, `delivered` или `undelivered`.

Затем мы обновляем `notificationStatus` в `Order` и позволяем бизнес-логике взять на себя управление. Это отличное место для добавления логики, которая повторно отправит сообщение в случае сбоя или отправит автоматический опрос через несколько минут после того, как клиент получит одежду.

Вот и все — и сложено! Мы только что реализовали сервис уведомлений по запросу, который предупреждает наших клиентов, когда их заказ забирается или прибывает.

Далее давайте рассмотрим некоторые другие легко интегрируемые функции.

Java и Twilio отлично работают вместе! Вот еще несколько руководств по Java Servlets:

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

Защитите конфиденциальность ваших пользователей, анонимно связывая их с Twilio Voice и SMS. Узнайте, как создавать одноразовые номера телефонов по запросу, чтобы два пользователя могли общаться без обмена личной информацией.

#### Это помогло?

Спасибо, что ознакомились с этим руководством! Дайте нам знать, что вы создали — или что вы создаете — в Twitter.