PHP Mesaj Gönderme Kuyruğu Bina

1 Cevap php

Ben e-posta üzerinden abonelere kutsal ayetleri gönderecek bir sistem inşa ediyorum. Aboneler mümkün olacaktır:

  • Onlar ayetleri almak istediğiniz kutsal ne hacmi belirlemek
  • Mesajlarının günlük sıklığını belirlemek ve kaç ayet, her iletiye dahil edilecek
  • Bu mesajları almak istediğiniz günün hangi saatleri belirleyin
  • Onların ilerleme takip (bu yüzden bir süre üzerinde bir kitap okuyabilirsiniz)

Ben bu sorun için veri modeli kafam gerçekten zor bir zaman yaşıyorum. Özellikle, ben bina ve onlara mesaj gönderme hakkında gitmek için gidiyorum nasıl mücadele ediyorum.

Şimdiye kadar içerik, frekans, ve mesaj başına teslim içerik miktarına için kullanıcının tercihleri ​​anlatacağım, hangi bir abonelik tablo ile geldi, ama onlar içeriği teslim istediğiniz kez saklanması modellemek için tam olarak nasıl bilmiyorum.

Ben bir cron işi düşünüyorum gönderilen ve bir message_queue tabloda onları koymak gerekir mesajları üretecektir her saat çalışacaktır. Başka bir cron işi çalıştırmak ve yanık message_queue tablo üzerinden ve zaman zaman doğru mesajları göndermek olacaktır.

Herhangi Ben daha verimli modellemek ve bu sistemi kurmak için nasıl bir fikir?

İşte benim şimdiki veri modeli bulunuyor:

Data Model

1 Cevap

Siz doğru yolda oldukça fazla.

Hiç ek kutuları eklemek için gerekiyorsa önerilen çözüm oldukça kolay ölçekli olmalıdır. Sen segment kullanıcı tabanı kolayca olabilir, ve N kutularının her biri 1 / N kullanıcı idare var. Tercih ve kutsal veri merkezi DB okuma, ya da salt okunur köle dışarı çoğaltılmış olabilir ya. Köleler potansiyel geri ana sisteme özetlenen durum verilerine çeşit göndererek, kendi kuyruğunu korumak olacaktır. Tabii ki, her şey bir kutu iyi çalışır, ve ölçek için ilk adım çeşitli SMTP sunuculara yuvarlak robin çeşit yapmak olduğunu görebilirsiniz. Ben sendmail (veya eşdeğer) kuyruk kolayca büyük, eski, darboğaz olma bitebileceğini düşünün.

Devam edin ve planlanan ettik, sonra çok dikkatli şeyler asılı nerede anlamaya bazı testler şeyler inşa ediyorum.