Php gelen e-postaları gönderme ile ilgili görüş

1 Cevap php

Ben kayıtlı kullanıcılar e-posta bildirimleri gönderecek bir web sitesi hazırlama ediyorum. Benim deneyim biz binlerce bahsediyoruz, özellikle e-posta göndermek biraz PHP için sancılı bir süreç olduğunu biliyorum. Benim sitelerinden biri 1000-1500 halkına her şimdi ve sonra e-posta gönderir. O bunu başarmak için PHP için 5mins sürer, bu nedenle sunucu yük düşük olduğunda biz gece çalıştırın. Ben herhangi bir SMTP olmadan yerli mail() function kullanıyorum. Bu adanmış bir sunucu üzerinde iyi çalışır, ama bu çözümün büyük bir hayranı değilim.

I want to be able to send similar amounts at any time without risking the server going down (and it to be blacklisted).
I've read, that ideal solution is to send emails in batches (say of 20) every couple of minutes from a script that's triggered by Cron. This seems to me like a really reasonable idea, but... What if I don't have access to Cron (not all hosting providers give access to it) and website isn't popular enough to be able to trigger the script on page load?

Ben posta ve hiçbir harici bir çözüm yapmak benim sunucu kullanarak ısrar ediyorum.

PS. Ben bu gibi çözümler bulundu: http://www.mywebcron.com/ ama bu iyi mi?


EDIT

Sadece eklemek için:

  • Ben CodeIgniter kullanıyorum,
  • e-postaları geçerli benim sunucudan gönderilen hangi hızı e-posta başına genellikle 0.2sn olduğunu.

1 Cevap

Eğer bir periyodik işi kullanamıyorsanız, size Gearman gibi bir kuyruk çözüm içine bakmak isteyebilirsiniz.

Ne yapmak istersiniz kuyruğuna tüm e-postaları itmek ve kuyrukta dışı işleri almak 1 ya da daha uzun süre çalışan işçi var olduğunu. Eğer sisteme gecikme eklemek istiyorsanız, sadece de orada bir uyku ekleyin.

Bazıları gerçekten temel pseudocode:

#wherever you launch the jobs from
for each user
  gearman.push(user.generateEmail())


#in your consumer script
while true
  message = gearman.consume()
  message.send()
  sleep(5)