Python ve PHP arasında kolay, Sağlam IPC

2 Cevap php

Ben subprocess.Popen() işlevini kullanarak bir PHP komut dosyası başlar bir piton program var. PHP komut dosyası Python ile geri ve ileri iletişim ihtiyacı var ve ben alma / gönderme mesajı yönetmek kolay ama sağlam bir yol bulmaya çalışıyorum.

Ben zaten temel yuvalarını kullanarak bir çalışma protokolü yazdım, ama çok sağlam gelmiyor - Ben düştü iletileri işlemek için herhangi bir mantığı yok, ve ben bile tam olarak başka ne hakkında bana belirsiz bırakır nasıl yuva iş anlamıyorum yanlış gidebiliriz.

Are there any generic libraries or IPC frameworks which vardır easier than raw sockets?

  • ATM Python ve PHP destekleyen bir şey gerekir, ama ileride ben de C, Perl ve Ruby kullanmak mümkün isteyebilirsiniz.
  • Sunucu veya istemci çöküyor, diğer taraf incelikle kurtarmak mümkün olması gerektiğinde ben bir şey robust, yani arıyorum.

2 Cevap

Eğer genel bir RPC çerçeve istediğiniz gibi geliyor.

Sen bir göz atmalısınız:

Tasarruf için ne arıyorsanız muhtemelen daha fazladır. Bu dahili Facebook tarafından kullanılır.

Siz paylaşılan bellek veya adlandırılmış boru bakmak olabilir, ama bu dillerden en az biri bir webapp için kullanılan varsayarak, iki olasılığı daha yüksektir seçenek vardır düşünüyorum:

A. veritabanının atomicity kullanın. Python, bir işlem başlatmak bir tabloya bir mesaj koymak, ve işlem biter. Php itibaren, tablo dışına bir mesaj almak ya da "okumak" işaretleyin ve işlemi sona erdirmek, bir işlem başlar. Lütfen PHP ve / veya python kendini tanımayan iki kez aynı mesajları göndermek için yeterli olun. Voila; güvenilir (ve ölçeklendirilebilir) IPC, mevcut web mimarisini kullanarak.

B. Lütfen webserver sadece localhost erişim herhangi bir iç süreçlerini kilitleyerek, php ve python hem çalıştırabilen (webapp gibi varsayarak), ve sonra standart kütüphaneleri kullanarak diğer dilden XMLRPC veya sabun kullanarak onları arayın olun. Eğer daha sonra URL'leri ve güvenlik kilidi-çıkışlar gibi değiştirebilirsiniz Bu, aynı zamanda ölçeklenebilir.