Webhook Logs & Antrean WP-Cron Queue: Ketahanan Sinkronisasi Data

Fitur Webhook Logs dan Antrean WP-Cron Queue menjamin ketahanan sinkronisasi data (fault tolerance) antara formulir WDP RSVPKit dan Google Sheets, mencegah hilangnya data tamu saat terjadi gangguan jaringan atau pembatasan kuota API Google.


Memahami Kebutuhan & Masalah Lapangan

Mengandalkan transmisi data real-time langsung ke pihak ketiga selalu memiliki risiko kegagalan jaringan (network failure):

  1. Google Sheets API sesekali memberlakukan rate limiting atau mengalami gangguan sesaat (temporary outage).
  2. Koneksi internet server hosting mengalami lonjakan latensi (timeout), menyebabkan pengiriman webhook terputus di tengah jalan.
  3. Pada plugin webhook murahan, jika pengiriman pertama gagal, data tamu tersebut langsung lenyap dan tidak pernah sampai ke spreadsheet selamanya.

Bagi calon pengantin, kehilangan satu saja data konfirmasi tamu penting (misal tamu pejabat atau keluarga sepuh) dapat memicu kesalahpahaman besar di hari pernikahan.

WDP RSVPKit mengatasi masalah keandalan ini dengan menerapkan arsitektur Two-Tier Resilience: data disimpan permanen di database lokal WordPress terlebih dahulu, dan setiap kegagalan webhook otomatis ditampung ke dalam antrean WP-Cron Retry Queue untuk diproses ulang hingga sukses.


Prasyarat Sebelum Memulai

Sebelum memantau dan mengonfigurasi Webhook Logs:

  • Plugin WDP RSVPKit v1.4.0 aktif berlisensi resmi.
  • Webhook Google Sheets atau WhatsApp telah terkonfigurasi pada menu pengaturan.
  • Memiliki hak akses Administrator di WordPress untuk membuka menu Logs.

Pokok Bahasan & Konfigurasi Teknis

Webhook Logs dan Antrean Cron Queue WDP RSVPKit
Webhook Logs dan Antrean Cron Queue WDP RSVPKit

1. Anatomi Tabel Webhook Logs di WP-Admin

Tabel log transmisi WDP RSVPKit menyediakan audit data yang sangat transparan:

  • Timestamp: Waktu presisi (jam, menit, detik) saat event submission terjadi.
  • Event Data: Ringkasan data tamu (nama dan jumlah pax yang dikirim).
  • Target Endpoint: URL tujuan webhook (Google Apps Script atau WhatsApp API).
  • HTTP Status Code:
  • 200 OK: Transmisi berhasil sempurna.
  • 200 (via 302): Transmisi berhasil setelah mengikuti pengalihan Google.
  • Timeout / 503: Server tujuan lambat merespon (masuk antrean retry).
  • Latency: Durasi transmisi jaringan dalam milidetik (misal: 680 ms).
  • Aksi / Detail: Tombol untuk melihat payload JSON mentah dan pesan respon server.

2. Siklus Kerja Antrean WP-Cron Queue (Auto-Retry Mechanism)

Alur kerja ketahanan data saat terjadi gangguan:

  1. Submission Masuk: Tamu menekan tombol kirim form. Data tersimpan aman di tabel database WordPress (wp_wdp_rsvp_responses).
  2. Kirim Webhook Seketika: Sistem mencoba mengirimkan payload data ke Google Sheets.
  3. Deteksi Kegagalan: Jika server Google merespon dengan kode error atau koneksi timeout (di atas 15 detik), sistem menandai log dengan status RETRY QUEUED.
  4. Jadwal Antrean WP-Cron: Event cron wdp_rsvp_process_webhook_queue dijadwalkan berjalan tiap 5 menit untuk mengambil data yang tertunda dan mengirimkannya kembali.
  5. Maksimal Percobaan: Sistem mencoba hingga 3 kali. Jika tetap gagal setelah 3 percobaan, baris log diberi tanda merah agar administrator dapat memeriksanya secara manual.

3. Tombol Eksekusi Manual (Resend All Failed)

Jika terjadi kendala kuota API Google yang sudah Anda selesaikan:

  1. Buka WP-Admin > menu WDP RSVPKit > Webhook Logs.
  2. Di pojok kanan atas, klik tombol Kirim Ulang Antrean Gagal (Resend All Failed).
  3. Sistem akan langsung memproses seluruh antrean yang tertunda secara berurutan dengan jeda aman 2 detik antar baris untuk menghindari pembatasan kuota baru.

4. Tabel Kode Status HTTP pada Webhook Logs

Kode Status HTTPArti pada DasborSolusi & Tindakan
200 OKSukses TerkirimTidak ada tindakan, data sudah aman di spreadsheet
302 FoundPengalihan Google Apps ScriptOtomatis diikuti oleh RSVPKit hingga menjadi status 200
401 / 403Akses DitolakPeriksa izin Web App di Apps Script (pastikan disetel Anyone)
404 Not FoundURL SalahPeriksa apakah URL Webhook terpotong atau salah salin
500 / 503Server Target ErrorSistem otomatis memasukkan ke antrean Cron retry
cURL 28 TimeoutJaringan Hosting LambatCron queue akan mengirim ulang saat koneksi kembali stabil

Studi Kasus Nyata: Pernikahan Andy & Zhea

Saat tautan undangan Andy & Zhea disebarkan secara serentak pada hari Minggu malam, terjadi lonjakan konfirmasi (80 tamu mengirimkan respon dalam rentang waktu 10 menit):

  • Tantangan: Server Google Apps Script sempat mengalami throttling dan menolak 4 submission dengan status HTTP 503 Service Unavailable.
  • Penerapan: Fitur WP-Cron Queue RSVPKit langsung menangkap 4 respon tersebut dan menjadwalkan pengiriman ulang.
  • Hasil: 15 menit kemudian, ketika beban Google mereda, cron scheduler berhasil mengirimkan keempat data yang tertunda ke spreadsheet tanpa ada intervensi manual dari vendor. Seluruh 80 data tamu tersimpan 100% lengkap tanpa ada satu pun yang tercecer.

Tips & Praktik Terbaik

Pembersihan Log Otomatis: RSVPKit secara berkala membersihkan riwayat log yang sudah berumur lebih dari 30 hari untuk menjaga ukuran database WordPress tetap ramping.
Hosting dengan WP-Cron Normal: Pastikan fitur cron hosting Anda tidak dinonaktifkan secara permanen (DISABLE_WP_CRON = false) atau siapkan cron job server sistem operasi (cPanel Cron) agar antrean latar belakang dapat dieksekusi secara teratur.

Pertanyaan yang Sering Diajukan (FAQ)

Apa yang terjadi jika server Google Sheets sedang down atau mengalami rate limit saat tamu mengirim form? +
Data tidak akan hilang. RSVPKit menyimpan data ke database lokal WordPress terlebih dahulu, lalu memasukkan tugas transmisi ke dalam antrean WP-Cron Queue untuk dikirim ulang secara otomatis.
Berapa kali sistem mencoba mengirim ulang webhook yang gagal? +
Sistem melakukan auto-retry hingga 3 kali dengan jeda eksponensial (5 menit, 15 menit, dan 30 menit).
Di mana saya bisa melihat daftar transmisi webhook yang berhasil dan gagal? +
Anda dapat melihatnya pada menu WDP RSVPKit > Webhook Logs di WP-Admin, lengkap dengan kode status HTTP, waktu transmisi, dan pesan respon server.
Bisakah saya memicu pengiriman ulang secara manual tanpa menunggu antrean Cron? +
Bisa. Tersedia tombol 'Kirim Ulang Antrean Gagal' (Resend All Failed) di bagian atas tabel Webhook Logs.
Apakah antrean WP-Cron memberatkan performa website undangan? +
Tidak. Antrean dieksekusi di latar belakang (*background asynchronous task*) secara terisolasi tanpa mempengaruhi kecepatan muat halaman tamu di peramban.