---
title: "Надёжность SMS Gateway: батарея, heartbeat, автозапуск, повторы"
nav_title: "Надёжность"
url: https://docs.tuk-tuk.online/sms-gateway/reliability
markdown: https://docs.tuk-tuk.online/sms-gateway/reliability.md
section: "SMS Gateway (Android)"
description: "Как SMS Gateway работает в фоне круглосуточно: sticky-уведомление, настройки батареи Android, heartbeat каждые 30 минут, push через FCM, автозапуск после перезагрузки, повторы при ошибках."
keywords: ["SMS Gateway батарея", "heartbeat", "автозапуск SMS", "push уведомления", "автопереподключение", "фоновая работа Android", "SMS Gateway надёжность", "WorkManager"]
lang: ru
product: tuk-tuk.online
app: https://lk.tuk-tuk.online
api_base: https://back.tuk-tuk.online
---

> [!AI] Кратко
> Механизмы, которые держат SMS Gateway в работе без присмотра: sticky-уведомление и настройки батареи Android, heartbeat раз в 30 минут, команды через FCM, автозапуск после перезагрузки, повторы при ошибках.
>
> - Sticky-уведомление включается в настройках приложения и мешает Android выгрузить его; рекомендуется на Xiaomi, Huawei, Samsung.
> - На телефоне: отключить оптимизацию батареи (Настройки → Приложения → tuk-tuk → Батарея → «Не ограничивать»), включить автозапуск, закрепить приложение.
> - Heartbeat: каждые 30 минут по умолчанию, варианты 15/30/60, минимум 15; передаёт батарею, сеть, память, хранилище, часовой пояс, SIM, push-токен.
> - Push (FCM) двух типов: SMS (получатели, текст, SIM-слот) и Heartbeat. Повтор push до 3 раз.
> - После перезагрузки BootCompletedReceiver перезапускает heartbeat, отправляет данные и восстанавливает уведомление.
> - Загрузка входящего SMS на сервер: до 5 попыток с паузами 10, 20, 40, 80, 160 секунд.
>
> Связанные страницы: https://docs.tuk-tuk.online/sms-gateway, https://docs.tuk-tuk.online/sms-gateway/features, https://docs.tuk-tuk.online/sms-gateway/monitoring, https://docs.tuk-tuk.online/sms-gateway/setup

# Надёжность

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

## Фоновая работа

### Sticky-уведомление

Постоянное уведомление в шторке Android. Оно:

- не даёт системе выгрузить приложение;
- показывает, что шлюз работает;
- включается и выключается в настройках приложения.

> [!TIP] Включите sticky-уведомление. Особенно это важно на Xiaomi, Huawei и Samsung: их прошивки закрывают фоновые приложения чаще других.

### Настройки батареи на телефоне

| Действие | Где |
|---|---|
| Отключить оптимизацию батареи | Настройки → Приложения → tuk-tuk → Батарея → «Не ограничивать» |
| Включить автозапуск | Настройки → Приложения → tuk-tuk → Автозапуск |
| Закрепить приложение | В списке последних приложений нажать значок замка на tuk-tuk |

> [!WARNING] У Xiaomi, Huawei, Samsung и OPPO эти пункты лежат в разных местах. Общее правило: найти tuk-tuk в настройках и снять все ограничения.

## Heartbeat

Heartbeat: регулярный сигнал от телефона серверу «я работаю, вот моё состояние». Если сигналы перестали приходить, устройство считается офлайн.

### Как работает

1. Каждые 30 минут (настраивается, минимум 15) приложение просыпается.
2. Собирает данные о состоянии телефона.
3. Отправляет их на сервер.
4. Сервер обновляет карточку устройства в кабинете.

### Что передаётся

| Данные | Пример |
|---|---|
| Уровень батареи | 78% |
| Тип сети | Wi-Fi, LTE, 3G |
| Свободная память | 2.1 ГБ из 6 ГБ |
| Свободное хранилище | 15 ГБ из 64 ГБ |
| Часовой пояс | UTC+3 |
| SIM-карты | Оператор, страна, слот |
| Push-токен | Актуальный токен для FCM |

### Интервал

| Интервал | Когда выбирать |
|---|---|
| 15 минут | Максимальный контроль, чуть выше расход батареи |
| 30 минут | По умолчанию |
| 60 минут | Экономия батареи, статус обновляется реже |

Сервер может запросить heartbeat вне расписания через push, когда нужно актуальное состояние устройства прямо сейчас.

## Push-уведомления (FCM)

Команды приходят на телефон через Firebase Cloud Messaging.

| Тип | Что делает |
|---|---|
| SMS | Отправить SMS: получатели, текст, SIM-слот |
| Heartbeat | Отправить состояние устройства сейчас |

Push доставляется сразу, даже когда приложение спит: Android будит его для обработки. Если push не дошёл, сервер повторяет отправку до 3 раз.

## Автозапуск после перезагрузки

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

| Действие при загрузке | Описание |
|---|---|
| Heartbeat | Перезапускает расписание |
| Обновление данных | Отправляет актуальное состояние телефона |
| Уведомление | Восстанавливает sticky-уведомление, если оно было включено |

Технически: приложение регистрирует BootCompletedReceiver, Android вызывает его при загрузке, и фоновые задачи запускаются заново.

## Повторы при ошибках

| Операция | Правило |
|---|---|
| Push с командой на SMS | Сервер повторяет до 3 раз |
| Загрузка входящего SMS на сервер | До 5 попыток с паузами 10, 20, 40, 80 и 160 секунд, только при наличии интернета |
| Heartbeat | Следующая попытка по расписанию, минимальный интервал 15 минут |

Если устройство всё же ушло в офлайн, см. [Мониторинг: частые проблемы](https://docs.tuk-tuk.online/sms-gateway/monitoring).
