Generic placeholder image

Menjalankan Query dengan jadwal waktu yang telah ditentukan

Ditanyakan 4 hari yang lalu oleh @byruddy ✔

Selamat sore Admin,

Saya mengalami kesulitan logika pada aplikasi forum yang telah saya buat, pada forum itu terdapat fitur banned anggota, dmana banned ini akan mengubah status tidak aktif selama 7 hari kedepan,

Pertanyaannya adalah bagaimana menjalankan query untuk mengubah kembali status menjadi aktif ketika banned telah selesai ?

*Saya sudah ada logika, tapi saya menunggu jawaban mas admin, karna logika saya mungkin memberatkan disisi server .. Terima kasih

BUAT KOMENTAR

1 JAWABAN

Generic placeholder image
Dijawab 4 hari yang lalu oleh Toni Haryanto

Ada 2 strategi yang bisa dilakukan:

  1. Menggunakan cronjob. Kita set cronjob untuk menjalankan pengecekan status tidak aktif user apakah sudah melalui batas durasi banned atau belum. Kalo sudah lewat, maka aktifkan kembali. Jadwal cronjob bisa dilakukan setiap 1 jam, atau 6 jam, atau sekali dalam sehari, tergantung kebijakan. Yang penting field di database tempat menyimpan data tanggal expirednya diset index, supaya beban querynya kecil.
  2. Menggunakan pseudo-cron. Ini strategi yang dilakukan oleh Wordpress untuk mempublish artikel terjadwal. Kita bisa cek status banned setiap kali si pengguna tersebut mengakses halaman web. Bila masih dalam rentang durasi banned maka tampilkan status masih banned. Kalo sudah lewat masa banned, maka aktifkan kembali status. Ini mungkin lebih efisien karena kita tidak perlu melakukan query yang tidak perlu.

Semoga jawabannya membantu.

Comment ..
Terima kasih banyak sebelumnya mas, untuk poin2 berikut : 1. bagaimana proses cronjob dilakukkan ? bagaimana kalau ada 1000 anggota, apakah 1000 anggota ini di cek satu2 status nya ?? 2. kalau untuk ini tidak bisa, bagaimana seandainya anggota tidak melakukkan login, tapi masa banned telah berakhir ? dan ada anggota lain melihat profil anggota yang terbanned tsb ? mohon untuk bantuannya mas @toni
Dikomentari 4 hari yang lalu oleh @byruddy ✔
Comment ..
masih belum ada jawaban :(
Dikomentari 3 hari yang lalu oleh @byruddy ✔
Comment ..
1) Untuk cronjob kamu bisa membuat table tersendiri yang isinya antrian (queue) dari data user yang statusnya banned. Atau bisa langsung query saja data user dengan filter status banned dan tanggalnya sudah kadaluwarsa. Kan ga mungkin 1000 orang semuanya dibanned kan? Jangan ambil semua kemudian dicek satu per satu di PHP dong, ambil saja dengan filter. ok
2) Untuk pseudo cron ya tinggal diakali saja, ga mesti dicek hanya pas sedang login. Bisa saja saat ditampilkan data user di depan, di PHP dicek dulu apakah tanggal bannednya sudah kadaluwarsa atau belum. Kalo sudah kadaluwarsa jangan ditampilkan lagi status bannednya.
Dikomentari 1 hari yang lalu oleh Toni Haryanto
Comment ..
dari keduanya sepertinya yang menarik no (1) yah pak, karena aku belum pernah mencoba cronjob, panduan untuk membuat cronjob sederhana gmana yah pak ? mohon bimbingan dan bantuannya karna ini sangat membantu banget Terima kasih
Dikomentari 7 jam yang lalu oleh @byruddy ✔
BUAT KOMENTAR