PHP betikleri çalışan arasındaki veri geçirerek

2 Cevap php

Iletişim için birden fazla çalışan PHP için, en az bellek yoğun çözüm nedir?

  • Değişiklikler için düz dosyaları izlemek
  • Yeni verilere kontrol etmek için bir DB sorguları çalışmaya devam

Ben duymadım, ama asla denedim diğer teknikler:

  • Paylaşılan bellek (APC, ya da çekirdek fonksiyonlar)
  • Mesaj kuyrukları (Active MQ ve şirket)

2 Cevap

Genel olarak, bir paylaşılan bellek tabanlı bir çözüm hızlı olmak ve çoğu durumda az yükü sahip oluyor. Bunu kullanabilirsiniz, bunu yapmak.

Mesaj Kuyrukları ben hakkında çok şey bilmiyorum, ama seçim veritabanları ve düz dosyalar arasında olduğu zaman, ben çünkü eşzamanlılık sorunları bir veritabanı için tercih olacaktır.

Bir dosya muhtemelen diğer komut mesajlarını yazmak için başarısız neden ona bir satır eklemek için kilitlemek zorunda.

Bir veritabanı tabanlı bir çözüm olarak, her mesaj için tek bir kayıt ile çalışabilirsiniz. Kayıt benzersiz kimliği, alıcı ve mesaj içerecektir. Alıcı komut kolayca yeni iletiler için yoklamak ve okuduktan sonra, hızlı ve güvenli bir şekilde söz kaydını kaldırabilirsiniz.

Bu bilmeden cevap vermek zor:

  • Ne kadar veri her iletinin (2 byte ya da 4 megabayt) göndermek olacak?
  • Onlar aynı makinede çalışacak? (Bu bir evet, başka düşünüyor olmaz paylaşılan bellek gibi görünüyor)
  • Performans gereksinimleri (bir mesaj bir dakika ya da saniyede trilyonlarca) nedir?
  • Ne kaynak sizin için en önemlidir?

Ve böylece ...

Bir DB kullanarak bir PHP ortamında muhtemelen kurulum için en kolay ve, dakika ve bu sorguların tipine göre, bu gerçekten sanest çözüm olabilir kaç sorgular bağlı. Şahsen ben bu yeterli değil ise o zaman ilk ve görmek denemek istiyorum.

Fakat, yine, sert uygulaması hakkında daha fazla bilgi olmadan kesin bir şey söylemek için.