Mengelola Data dan Database

Dokumen ini membahas cara mengelola berbagai jenis data dan database yang terkait dengan klien API WhatsApp Business.

Volume

Volume adalah mekanisme pilihan untuk mempertahankan data yang dihasilkan dan digunakan kontainer Docker. Klien API WhatsApp Business memerlukan satu volume Docker untuk media. Volume ini akan dibuat secara otomatis saat menjalankan perintah docker-compose selama penginstalan.

Volume Docker mendukung volume penyimpanan di host jarak jauh atau penyedia cloud. Anda dapat mengatur volume media pada solusi berbagi file di pusat data yang ada. Pastikan semua kontainer WebApp dan CoreApp memiliki akses baca/tulis ke volume tersebut. Untuk melihat atau mengedit jalur ke volume tersebut, edit file docker-compose.yml.

NamaDeskripsi

Volume Media

  • Menyimpan file media masuk dan keluar.
  • Dipasang di dalam kontainer secara default, di /usr/local/wamedia/

Variabel Lingkungan

Klien API WhatsApp Business dapat menggunakan MySQL atau PostgreSQL untuk menyimpan data.

Anda dapat mengonfigurasi pengaturan database dengan mengatur variabel lingkungan berikut di file db.env saat menginstal klien API WhatsApp Business. Variabel lingkungan ini akan digunakan oleh CoreApp dan WebApp saat menghubungkan ke database.

Pengaturan Database Variabel Lingkungan

database_engine

WA_DB_ENGINE

hostname

WA_DB_HOSTNAME

port

WA_DB_PORT

username

WA_DB_USERNAME

password

WA_DB_PASSWORD

database_name_prefix

WA_DB_NAME_PREFIX

connection_idle_timeout

WA_DB_CONNECTION_IDLE_TIMEOUT

  • WA_DB_NAME_PREFIX — Dapat digunakan untuk mengawali semua database yang dibuat saat klien API WhatsApp Business diinstal. Ini dapat digunakan untuk menjalankan beberapa set database API WhatsApp Business pada host database yang sama.
  • WA_DB_CONNECTION_IDLE_TIMEOUT (hanya didukung oleh MySQL) — Dengan mengatur variabel lingkungan ini (dalam milidetik) saat memulai CoreApp, Anda dapat mengatur waktu tunggu idle untuk database MySQL Anda. Server MySQL kemudian akan menutup semua koneksi database yang tidak aktif untuk waktu yang ditentukan.

Pengelolaan Database

Ini adalah rekomendasi untuk mengelola database yang terkait dengan klien API WhatsApp Business Anda.

KekhawatiranRekomendasi

Meningkatkan dengan database besar

Database yang dianggap besar jika memiliki lebih dari 2 juta baris di tabel messages.
Gunakan rekomendasi berikut untuk menggunakan endpoint /services/message/gc selama peningkatan untuk menjaga stabilitas database.

Pengumpulan sampah berbasis panggilan API

  • Membuat pembersihan database bergantung pada integrasi dan idealnya, harus dihindari untuk sebagian besar bisnis.
  • Bisnis yang menggunakan API WhatsApp Business direkomendasikan untuk melakukan pengumpulan sampah database:
    • Tandai pesan masuk sebagai sudah dibaca sebelum membuat permintaan API untuk mengaktifkan pembersihan agresif.
    • Kami merekomendasikan endpoint /services/message/gc digunakan setiap 24 jam selama waktu henti (yaitu, volume pesan keluar rendah).
    • Untuk tabel messages dengan lebih dari 10 juta baris, Anda mungkin perlu menjalankan permintaan API beberapa kali untuk memastikan notifikasi panggilan balik dikembalikan tanpa kesalahan.

Lihat dokumentasi Layanan untuk informasi selengkapnya.

Rotasi Catatan

Skrip rotasi catatan dikemas di dalam kontainer CoreApp dan WebApp.

WebApp

Skrip rotasi catatan dalam kontainer WebApp:

  • Menggunakan utilitas rotasi catatan
  • Menyimpan 30 file web, akses, dan catatan kesalahan terakhir
  • Memutar hanya jika ukuran lebih dari 20 MB
  • Mengompres file log yang diputar
  • Mengarsipkan file catatan lama ke /var/log/whatsapp/archive

CoreApp

Skrip rotasi catatan dalam kontainer CoreApp:

  • Menggunakan skrip in-house
  • Menyimpan 30 file terakhir
  • Memutar secara otomatis jika ukuran lebih dari 15 MB
  • Mengompres file log yang diputar
  • Mengarsipkan file catatan lama ke /var/log/whatsapp/archive

Di CoreApp, file catatan baru hanya dibuat saat ukuran melebihi 15 MB per file catatan. File catatan lama dihapus secara otomatis.

Rekomendasi Skrip Pembersihan

Direkomendasikan Anda secara berkala (misalnya: setiap hari) menjalankan skrip pembersihan di bawah ini untuk melakukan rotasi catatan di semua kontainer WebApp, CoreApp, dan Master (dalam hal pengaturan Multikoneksi). Sebaiknya konfigurasi cronjob di host Anda untuk dilakukan di semua kontainer API WhatsApp Business yang berjalan dan dijalankan di luar jam sibuk. Menjalankan skrip pembersihan secara berkala akan membuat ruang disk yang dipakai file catatan tetap terkontrol.

docker exec your-container-name /opt/whatsapp/bin/cleanup.sh