هل يمكن لمثيلات نفس البرنامج النصي PHP التواصل المتبادل؟

StackOverflow https://stackoverflow.com/questions/1430417

سؤال

أفترض أنه بالنسبة لكل طلب صفحة، فإن خادم الويب (على سبيل المثال.Apache) يقوم بإنشاء مثيل جديد للبرنامج النصي في الذاكرة.هل يمكن لهذه الحالات التواصل مع بعضها البعض أثناء التشغيل؟وتمرير البيانات أيضا؟

هل كانت مفيدة؟

المحلول

إذا كنت تريد تمرير البيانات بين البرامج النصية في PHP أقترح استخدام إما أعطها أو قاعدة بيانات. أو ربما APC.

إذا النصوص تنتمي إلى نفس الدورة، فإنها يمكن أن التواصل نظريا عبر الدورة ولكن هذا سيكون فعليا الاتصالات في اتجاه واحد في معظم الحالات بسبب برنامج نصي واحد فقط يمكن الوصول إلى جلسة في وقت واحد (session_start () بتأمين الجلسة حتى أن السيناريو تنتهي الدورة ضمنا أو صراحة).

نصائح أخرى

أعتقد أن اقتراحات مارتن وكليتوس صحيحة.سيكون خياري بمثابة الهدف النهائي للبرنامج النصي.

  • ما مقدار البيانات التي سوف ترميها؟هل يمكنك التعامل مع النفقات العامة لعملية خارجية؟
  • ما نوع البيانات التي تقوم بتبادلها؟هل تم التطبيع؟أم أن الأمر يستحق التطبيع الآن؟
  • هل ستحتاج إلى الرجوع إلى تلك البيانات لاحقًا؟أم يمكن التخلص منها بعد معالجتها؟
  • هل سيتم تشغيل هذه البرامج النصية على خوادم مختلفة؟

  • ملفات مسطحة، مع آلية القفل

  • قاعدة البيانات العلائقية
  • قاعدة بيانات المستند (مخزن المفتاح/القيمة، سواء كان ثابتًا أم لا)
  • الذاكرة المشتركة (APC، أو الوظائف الأساسية)
  • قوائم انتظار الرسائل (MQ النشط والشركة)

أعتقد أنك ستحصل على أكبر قيمة من خلال إضفاء الطابع الخارجي على العملية حيث يمكن أن يكون لديك أكثر من جهاز واحد لإدارة الرسائل/البيانات وأكثر من جهاز واحد ينتج/يستهلكها.

والنموذج الذي PHP البرامج النصية تعمل على الخروج من لا يحتوي حقا فكرة من أي نوع من الثبات في الذاكرة لتلك النصوص، منذ عام أنها مصممة لتشغيل فقط عن الحد الأدنى من الوقت اللازم لخدمة الصفحة المطلوبة. هذا من شأنه أن يجعل من الصعب أن يكون له أي الاستخدام الهادف للاتصال جليل بين تلك النصوص، لأن عادة مرة واحدة في الصفحة يتم تقديم هناك شيء أكثر للبرنامج النصي للقيام به. وهكذا عادة يتم أي اتصال بين مخطوطات PHP أكثر من خلال التلاعب في إدخالات قاعدة البيانات ومثل.

إذا كان لديك نوعا من المعالجة المستمرة التي ينبغي أن يحدث الذي كنت تريد أن تكون بتمرير البيانات حولها، قد ترغب في النظر في نماذج تطبيق ويب أخرى مثل السيرفلتس.

ويجب أن تكون قادرة على القيام بذلك مع بعض الذاكرة المشتركة، كما هو موضح هنا: <لأ href = "http://blog.taragana.com/index.php/archive/how-to-use-shared-memory- في فب / "يختلط =" noreferrer نوفولو "> http://blog.taragana.com/index.php/archive/how-to-use-shared-memory-in-php/ (على افتراض لكم ' لا إعادة تشغيل نظام التشغيل Windows)

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top