В этом документе рассматриваются вопросы управления различными типами данных и баз данных, связанными с клиентом WhatsApp Business API.
Тома — это предпочтительный механизм постоянного хранения данных, генерируемых и используемых контейнерами Docker. Клиенту API WhatsApp Business необходим один том Docker для медиафайлов. Этот том создается автоматически при выполнении команд docker-compose
на этапе установки.
Тома Docker могут храниться на удаленных хостах или в облачных службах. Том для медиафайлов можно создать на базе любого из существующих решений для совместного доступа к файлам через центр обработки данных. Все контейнеры Webapp и Coreapp должны иметь к этому тому доступ с правами чтения и записи. Просмотреть или изменить путь к тому можно в файле docker-compose.yml
.
Имя | Описание |
---|---|
Том Media |
|
Клиент WhatsApp Business API может использовать MySQL или PostgreSQL.
Для настройки параметров базы данных можно задать в файле db.env
при установке клиента WhatsApp Business API перечисленные далее переменные среды. Контейнеры Coreapp и Webapp используют эти переменные при подключении к базе данных.
Настройка базы данных | Переменная среды |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
WA_DB_NAME_PREFIX
можно использовать в качестве префикса для имен всех баз данных, созданных при установке клиента WhatsApp Business API. Эта переменная позволяет работать с несколькими наборами баз данных WhatsApp Business API на одном хосте.WA_DB_CONNECTION_IDLE_TIMEOUT
поддерживается только в MySQL. Задав для этой переменной значение в миллисекундах при запуске Coreapp, можно установить тайм-аут бездействия базы данных MySQL. Сервер MySQL будет закрывать все подключения к базе данных, для которых активность в течение заданного периода отсутствует.Рекомендации по управлению базой данных, связанной с клиентом WhatsApp Business API.
Проблема | Рекомендации |
---|---|
Обновление при большой базе данных | Большими считаются базы данных, таблица |
Сбор мусора на основе вызовов API |
Подробнее см. в документации по узлу Services. |
В контейнеры Coreapp и Webapp включен скрипт ротации журналов.
Скрипт ротации журналов в контейнере Webapp:
/var/log/whatsapp/archive
.Скрипт ротации журналов в контейнере Coreapp:
/var/log/whatsapp/archive
.В Coreapp новый файл журнала создается только тогда, когда размер существующего файла превышает 15 МБ. Старые файлы не удаляются автоматически.
Рекомендуется регулярно (например, ежедневно) запускать указанный ниже скрипт очистки для ротации журналов во всех контейнерах Webapp, Coreapp и основных контейнерах (в конфигурации с распределением нагрузки). Лучше всего настроить на хосте задание cron, которое будет выполняться во всех контейнерах WhatsApp Business API в периоды низкой нагрузки. Это необходимо, чтобы файлы журнала не занимали слишком много места на диске.
docker exec your-container-name /opt/whatsapp/bin/cleanup.sh