Aynı PHP komut dosyası haç örneklerini iletişim kurabilir?

4 Cevap php

Ben her sayfa isteği için, web sunucusu (örneğin Apache) bellekte bir komut yeni bir örneğini oluşturur varsayarak yaşıyorum. Çalışırken bu örnekleri birbirleri ile iletişim kurabilir mi? ve de veri aktarmak?

4 Cevap

Eğer PHP komut dosyaları arasında veri aktarmak istiyorum ben memcached veya bir veritabanını kullanarak öneririz. Ya da muhtemelen APC.

Komut aynı oturuma ait ise, teorik olarak oturum üzerinden iletişim olabilir ama sadece bir script herhangi bir zamanda (session_start (seansı erişebilir, çünkü bu çoğu durumda etkili bir şekilde tek yönlü bir iletişim olurdu) o kadar oturumu kilitler script) örtük veya açık oturumu sona erer.

Ben Martin ve Cletus'un önerileri geçerli olduğuna inanıyoruz. Benim tercihim senaryonun nihai hedef fonksiyonu olacaktır.

  • Ne kadar veri etrafında atma olacak? Eğer harici bir sürecin yükü ele miyim?
  • Eğer ne tür veri alışverişi vardır? Normalleştirilmiş mi? Ya da normalize değer şimdi?
  • Daha sonra bu verilere başvurmak gerekir? Ya da işlendikten sonra atılabilir?
  • Bu komut hiç farklı sunucular üzerinde çalışacak?

  • Bir kilitleme mekanizması ile düz dosyalar,

  • İlişkisel DB
  • Belge DB (anahtar / değer deposu, ister kalıcı ya da değil)
  • Paylaşılan bellek (APC, ya da çekirdek fonksiyonlar)
  • Mesaj kuyrukları (Active MQ ve şirket)

Ben size bunları tüketen / mesajları / veri ve birden fazla üretimlerin yönetmek birden fazla makine olabilir gibi sürecini dışa tarafından en yüksek değeri elde düşünüyorum.

Genelde sadece istenen sayfayı hizmet için gerekli süre en az çalıştırmak için tasarlanmış konum beri PHP betikleri kapalı faaliyet model gerçekten, bu komut için bellekte kalıcılık her türlü kavramını içermiyor. Bu zor genellikle bir kez sayfa yapmak için komut dosyası için daha fazla bir şey yok servis edilir, çünkü bu komut arasındaki durum bilgisi iletişim için herhangi anlamlı bir kullanımı var olur. Böylece genellikle PHP arasında herhangi bir iletişim veritabanı girişlerinin ve benzeri manipülasyon yoluyla daha yapılır.

Eğer etrafında geçen veri olmak isterdim hangi oluyor olmalıdır sürekli işleme çeşit varsa, bu tür servlet gibi diğer web uygulama modelleri içine bakmak isteyebilirsiniz.

http://blog.taragana.com/index.php/archive/how-to-use-shared-memory-in-php/ (Windows üzerinde çalışan değil varsayarak): Burada anlatıldığı gibi, bazı paylaşılan bellek ile bunu yapmak mümkün olmalıdır