2011-12-22 17 views
6

PHP üzerinde kurulu büyük bir web uygulamasına sahibiz. Bu uygulama, tweet'leri ve duvar mesajlarını programlamaya izin verir ve sunucudan çıkacak planlanmış e-postalar vardır.Message Queue ile Düz Cron Jobs'u PHP ile kullanma arasındaki farklar

'Zamanlı' ile, bunların, cron kullanarak belirli bir zamanda çalışacak şekilde planlanan PHP betikleri olduğu anlamına gelir. Yukarıdaki işleri yapan yaklaşık 7 PHP dosyası vardır.

Message Queues hakkında duydum. Message Queues'ın bu senaryoda en uygun olup olmadığını herkes anlatabilir mi? Message Queues PHP betiklerini yürütüyor mu? veya bunu tamamen farklı bir şekilde yapılandırmamız gerekecek mi? Avantajlar/dezavantajlar nelerdir?

+0

22 Görüntüleme. Kimse? Herhangi bir cevap? –

cevap

5

bir iş/görev kuyruk yöneticisi kullanarak nerede asenkron görevleri (PHP kodundan asenkron) yapmak için ayrıntılı bir tane temel bir yaklaşımı Crontab edilir kullanma ve daha fazla kontrol, güç ve ölçeklenebilirlik/esneklik vermek .

Crontab ile başa çıkmak çok kolay ama çok fazla işlevsellik sunmuyor. Eşzamansız görevler yerine zamanlanmış işler için en iyisidir. Diğer yandan, bir Görev sırasının (ve onun message broker) dağıtılması için daha fazla zamana gereksinim vardır. Önce doğru araçları seçmeli ve ardından bunları PHP kodunuzda nasıl uygulayacağınızı öğrenmelisiniz. ; Ancak bu 2011.

ben PHP yapmayın ama Python projelerde (RabbitMQ ile birleştiğinde) Celery etrafında oynamıştır, Şükürler gitmek yoludur PHP dünyasında benzer bir şey bulabileceğine eminim.

+0

Teşekkürler Stan! Message Queues saldırgan. Anlam, mesaj kuyrukları uygulamak uygulamada PHP kodu değişiklikleri gerektirir? –

+0

_A priori_ öyle değil. ** ama ** gecikmeli fonksiyonun parametresi serileştirilebilir olmalı ve bazen bazı sürprizler olabilir, çünkü bazı nesneler iyi işlenmez. – Stan

+0

yay. Bu 2013 ve hala aynı kural geçerli – om471987