পিএইচপি স্ক্রিপ্ট একযোগে অনুরোধ


86

যদি পিএইচপি ইঞ্জিনটি সার্ভারে কোনও স্ক্রিপ্ট কার্যকর করার মাঝামাঝি হয় তবে একই স্ক্রিপ্টে অন্যান্য যুগপত ব্রাউজারের অনুরোধের কী হবে?

  • অনুরোধগুলি সারিবদ্ধ করা হবে?
  • এগুলি কি উপেক্ষা করা হবে?
  • প্রতিটি অনুরোধের নিজস্ব স্ক্রিপ্ট উদাহরণ থাকবে?
  • অন্য কোন সম্ভাবনা?

উত্তর:


141

সার্ভারটি, এর কনফিগারেশনের উপর নির্ভর করে সাধারণত একই সাথে শত শত অনুরোধগুলি সরবরাহ করতে পারে - যদি অ্যাপাচি ব্যবহার করা হয় তবে MaxClientsকনফিগারেশন বিকল্পটি হ'ল:

MaxClientsনির্দেশ যুগপত অনুরোধ সার্ভ করা হবে সংখ্যার উপর সীমা সেট করে। লিজব্যাকলগের নির্দেশনার ভিত্তিতে সীমা
ছাড়িয়ে যেকোন সংযোগের প্রচেষ্টা MaxClientsসাধারণত সারিযুক্ত হবে।
একবার অন্য অনুরোধের শেষে কোনও শিশু প্রক্রিয়া মুক্ত হয়ে গেলে সংযোগটি পরিষেবা দেওয়া হবে।


দুটি ক্লায়েন্ট একই পৃষ্ঠার অনুরোধ করে এমন সমস্যা নেই।

সুতরাং:

অনুরোধগুলি সারিবদ্ধ করা হবে?

না; যদি বাদে:

  • কোথাও কোথাও কিছু লক রয়েছে - যা ঘটতে পারে, উদাহরণস্বরূপ, যদি দুটি অনুরোধ একই ক্লায়েন্টের কাছ থেকে আসে এবং আপনি পিএইচপি-তে ফাইল-ভিত্তিক সেশনগুলি ব্যবহার করছেন : যখন কোনও স্ক্রিপ্ট কার্যকর করা হচ্ছে, সেশনটি "লক করা হয়েছে", যা এর অর্থ সার্ভার / ক্লায়েন্টকে দ্বিতীয় ব্যবহারকারীর জন্য সেশন খোলার জন্য ফাইলটি ব্যবহার করতে সক্ষম হতে প্রথম অনুরোধটি শেষ না হওয়া পর্যন্ত (এবং ফাইলটি আনলক করা ) অপেক্ষা করতে হবে।
  • অনুরোধগুলি একই ক্লায়েন্ট এবং একই ব্রাউজার থেকে আসে; বেশিরভাগ ব্রাউজারগুলি এই ক্ষেত্রে অনুরোধগুলি সারি করবে, এমনকি যখন এই আচরণটি তৈরি করে এমন কোনও সার্ভার-সাইড নেই।
  • MaxClientsবর্তমানে সক্রিয় প্রক্রিয়াগুলির চেয়েও বেশি রয়েছে - অ্যাপাচের ম্যানুয়াল থেকে উদ্ধৃতিটি ঠিক আগে দেখুন।


এগুলি কি উপেক্ষা করা হবে?

না: এর অর্থ হ'ল কেবলমাত্র একজন ব্যবহারকারী একই সাথে একটি ওয়েবসাইট ব্যবহার করতে পারবেন; এটি বেশ সুন্দর হবে না, তাই না?

যদি ঘটনাটি ঘটে থাকে তবে আমি এই উত্তরটি পোস্ট করতে পারিনি, আপনি যদি একই মুহুর্তে F5 মারছেন তবে কেউ উত্তর দিয়েছে কিনা তা দেখার জন্য!
(ভাল, এসএইচপি পিএইচপি তে নেই, তবে নীতিগুলি একই)


অন্য কোন সম্ভাবনা?

হ্যাঁ ^^


আপনি ওপি এবং মন্তব্য সম্পাদনা করার পরে সম্পাদনা করুন:

প্রতিটি অনুরোধের নিজস্ব স্ক্রিপ্ট উদাহরণ থাকবে?

" স্ক্রিপ্ট উদাহরণ " এর মতো কোনও জিনিস নেই : সহজভাবে বলতে গেলে যেখানে স্ক্রিপ্টের জন্য অনুরোধ করা হচ্ছে সেখানে কী হচ্ছে:

  • ওয়েবসভারটি অনুরোধটি পরিচালনা করতে আরেকটি প্রক্রিয়া জোর করে (প্রায়শই পারফরম্যান্সের কারণে, সেই কাঁটাচামচ আগে থেকেই তৈরি করা হয়, তবে এটি কিছুই পরিবর্তন করে না)
  • প্রক্রিয়াটি ডিস্ক থেকে পিএইচপি স্ক্রিপ্ট পড়ে
    • বেশ কয়েকটি প্রক্রিয়া একই সময়ে এটি করতে পারে : ফাইল রিডিংয়ে কোনও লকিং নেই
    • ফাইলটি মেমরিতে লোড করা হয়; প্রতিটি প্রক্রিয়া জন্য একটি স্বতন্ত্র মেমরি ব্লক
  • মেমরিতে পিএইচপি ফাইলটি অপকডগুলিতে " সংকলিত " - এখনও মেমরিতে রয়েছে
  • এই অপকডগুলি কার্যকর করা হয়েছে - এখনও মেমরির ব্লক থেকে যা আপনার অনুরোধটির উত্তর দেওয়ার প্রক্রিয়াটির সাথে সম্পর্কিত


সত্যই, আপনার দুজন ব্যবহারকারী একই পিএইচপি স্ক্রিপ্টে অনুরোধ প্রেরণ করতে পারেন (বা পৃথক পিএইচপি স্ক্রিপ্টগুলিতে যে একই পিএইচপি ফাইল অন্তর্ভুক্ত রয়েছে) ; এটি অবশ্যই সমস্যা নয়, বা আমি যে ওয়েবসাইটটিতে কাজ করেছি তার কোনওটিই কাজ করবে না!


যদি এক সাথে একাধিক অনুরোধগুলি একই পিএইচপি ফাইলটিতে অ্যাক্সেস করে তবে ফলাফল কী হবে। অন্যান্য অনুরোধগুলি কি মুলতুবি রাখা হবে বা প্রতিটি অনুরোধের নিজস্ব স্ক্রিপ্ট উদাহরণ থাকবে?
কেভিন বয়ড

4
"স্ক্রিপ্ট উদাহরণ" এর মতো কোনও জিনিস নেই: প্রতিটি অনুরোধ একটি পৃথক প্রক্রিয়া (বা থ্রেড) দ্বারা প্রক্রিয়া করা হয় ;; স্ক্রিপ্টগুলি মেমোরি / ডিস্ক থেকে পড়া হয়, তবে একই ফাইলটি একই সময়ে অনেকগুলি প্রক্রিয়া থেকে কোনও সমস্যা ছাড়াই পড়তে পারে (কমপক্ষে, "আধুনিক" অপারেটিং সিস্টেমগুলিতে - যেমন উইন্ডোজ এবং লিনাক্স উভয়)
পাস্কল মার্টিন

এটি একটি দুর্দান্ত উত্তর, পিএইচপি কীভাবে কাজ করে সে সম্পর্কে আরও বিশদ আমি কোথায় জানতে পারি? এই জন্য কোন ভাল বই?
কেভিন বয়ড

4
আমি আসলে এটি সম্পর্কে জানি না: আমি অনুমান করছি যে ম্যানুয়ালটি দিয়ে যাচ্ছি, নেট নিয়ে নিবন্ধগুলি পড়ছি, এখানে / সেখানে প্রশ্ন / উত্তর পড়ছি এবং বেশ কয়েক বছর ধরে পিএইচপি-র সাথে কাজ করা শেখার একটি দুর্দান্ত উপায় - তবে আমি পারি ' সত্যিই এমন কোনও বইয়ের সুপারিশ করুন যা পিএইচপি ঠিক কীভাবে কাজ করে তা ব্যাখ্যা করবে ;; "পিএইচপি সম্প্রসারণ এবং এম্বেডিং" তে কিছু তথ্য রয়েছে তবে পিএইচপি কীভাবে কাজ করে তা ব্যাখ্যা করার জন্য এর বিষয় নয়; হতে পারে php.net/manual/en/internals2.php সাহায্য করতে পারে?
পাস্কল মার্টিন

পরিপূর্ণতা! আমাকে অনেক সাহায্য করেছে!
zookastos

21

যদি 2 ক্লায়েন্ট একই সাথে সার্ভারকে কল করে তবে সার্ভার সম্ভবত একই সাথে উভয় ক্লায়েন্টকে উত্তর দিতে সক্ষম। এখানে থাকা ক্লায়েন্টগুলি আমি তাদের ব্রাউজার স্তরে সংজ্ঞায়িত করি।

এর অর্থ হ'ল একই মেশিনে, আপনি একই ওয়েবসাইট / পৃষ্ঠা একই সাথে লোড করতে 2 ব্রাউজার ব্যবহার করছেন, উভয় একই সময়ে লোড করা উচিত।

তবে যেহেতু আমরা পিএইচপি সম্পর্কে বলছি, আপনার সেশন সম্পর্কে বিশেষ নোট নেওয়া দরকার। যদি আপনার পৃষ্ঠাগুলি সেশন ব্যবহার করে তবে সার্ভারটি একবারে কেবল একটি পৃষ্ঠা সরবরাহ করে। কারণ কোনও স্ক্রিপ্ট না বের হওয়া পর্যন্ত সেশন ফাইলটি লক হয়ে থাকবে।

এই উদাহরণটি দেখুন। 2 টি ফাইল একই সেশন ওরফে একই ব্রাউজার একই ব্যবহারকারী থেকে লোড করা হয়।

      scripta.php requested                 scripta.php served
------+---+---------------------------------+------------------------>
          scripta.php started

               scriptb.php requested           scriptb.php started
---------------+-------------------------------+-----------------+--->
                                                                 scriptb.php served.

লক্ষ্য করুন যে স্ক্রিপ্ট.এফপি কেবল স্ক্রিপ্টা.এফপি পরিবেশন করার পরে শুরু হয়। কারণ স্ক্রিপ্টা.এফপি যখন শুরু হয়েছিল তখন সেশন ফাইলটি অন্য স্ক্রিপ্টগুলিতে লক হয়ে যায় যাতে স্ক্রিপ্টা.এফপি সেশন ফাইলটিতে লিখতে পারে। স্ক্রিপ্ট.এফপি সম্পূর্ণ হলে, সেশন ফাইলটি আনলক করা হয় এবং এইভাবে অন্যান্য স্ক্রিপ্টগুলি এটি ব্যবহার করতে সক্ষম হয়। সুতরাং স্ক্রিপ্টবিএফপি সেশন ফাইলটি মুক্ত না হওয়া পর্যন্ত অপেক্ষা করবে তা সেশন ফাইলটি লক করে এটি ব্যবহার করবে।

এই প্রক্রিয়াটি একই সেশনে ফাইলটিতে বিলম্বের কারণ হিসাবে একাধিক স্ক্রিপ্টগুলি রোধ করতে পুনরাবৃত্তি করতে থাকবে। সুতরাং session_write_closeআপনি যখন অধিবেশনটি আর ব্যবহার করছেন না, তখন বিশেষত অনেক আইফ্রেমে বা এজেএক্স ব্যবহার করে কোনও ওয়েবসাইটে কল করার পরামর্শ দেওয়া হয় ।


4

শুধু এই নিজেকে দৌড়ে। মূলত আপনাকে session_write_close()একক ব্যবহারকারীর লকিং রোধ করতে কল করতে হবে। আপনি একবার কল করার পরে নিশ্চিত হয়ে নিন যে session_write_close()কোনও সেশন ভেরিয়েবলগুলি চেষ্টা করে ও সংশোধন করবেন না। একবার আপনি এটি কল করার পরে, সেশনগুলি কেবল তখন থেকে পঠনযোগ্য হিসাবে বিবেচনা করুন।


3

আপনি যদি খুব অ-মানক সেটআপ না চালিয়ে থাকেন তবে আপনার ওয়েব সার্ভারের (অ্যাপাচি, আইআইএস, এনজিনেক্স, ইত্যাদি) একাধিক প্রক্রিয়া থাকবে যা সার্ভারে আসা প্রতিটি অনুরোধের জন্য পৃথকভাবে পিএইচপি চালায়। একযোগে অনুরোধগুলি একই সাথে পরিবেশন করা হবে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.