MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

MongoDB sebagai layanan antrian?

Saya menggunakan mongodb sebagai layanan antrian untuk pengiriman email. Segera akan bekerja dengan cara berikut:

  1. Saat ada pesan baru, saya menyimpannya di mongodb.
  2. Pekerjaan latar belakang kemudian memuat pesan dari mongodb melalui operasi atom findAndModify dan menyetel flag Processing ke true, sehingga tidak memproses pesan yang sama dua kali (karena pekerjaan latar belakang saya menjalankan beberapa utas secara paralel).
  3. Setelah email terkirim, saya menghapus dokumen dari mongodb.
  4. Anda juga dapat menghitung kegagalan untuk setiap pesan dan menghapusnya setelah 3 kali gagal.

Secara umum saya menggunakan mongodb sebagai layanan antrian hanya untuk satu alasan:karena saya perlu mengirim email dengan jadwal yang ditentukan (setiap pesan berisi informasi jam berapa harus dikirim).

Jika Anda tidak memiliki jadwal dan perlu segera memproses pesan, saya sarankan Anda melihat ke layanan antrian yang ada, karena mereka mungkin menangani semua kasus yang mungkin tidak Anda lihat tanpa pemahaman yang lebih dalam tentang antrian pesan.

Perbarui

Saat pekerjaan latar belakang mogok selama pemrosesan pesan, Anda dapat melakukan hal berikut:

  1. Pindahkan pesan ini ke yang lain, kumpulan kesalahan antrian pesan atau..

  2. Tingkatkan penghitung upaya pemrosesan dalam pesan dan tetapkan lagi status "Baru", untuk mencoba memprosesnya lagi. Pastikan bahwa pekerjaan latar belakang idempoten (dapat memproses pesan yang sama beberapa kali dan tidak merusak data) dan transaksional (ketika pekerjaan gagal Anda harus membatalkan perubahan yang telah dibuat. jika ada). Ketika pekerjaan gagal setelah 5 upaya (nilai konfigurasi) lakukan #1.

  3. Setelah bug dengan pemrosesan pesan diperbaiki, Anda dapat memprosesnya sekali lagi dengan menetapkan status "Baru" dan pindah ke antrian pesan, atau cukup hapus pesan ini. Itu tergantung pada proses bisnis sebenarnya.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Masukkan file json ke mongodb

  2. Gabungkan dua kueri OR dengan AND di Mongoose

  3. Luwak:findOneAndUpdate tidak mengembalikan dokumen yang diperbarui

  4. Perbarui objek array berdasarkan id?

  5. Mongoid / Mongodb dan menanyakan dokumen yang disematkan