ধীরে ব্যবসা প্রসেসিং

সময়ে সময়ে আমাদের ধীরে ব্যবসা পদক্ষেপ নেয়া প্রয়োজন। অন্য রিকুয়েস্ট প্রসেসিং কোন অসুবিধা না তোলানের জন্য, এই ধীরে ব্যবসা পদক্ষেপগুলি বিভিন্ন প্রয়োজনীয়তা অনুযায়ী বিভিন্ন প্রক্রিয়া ব্যবহার করা যেতে পারে।

মেসেজ কিউ ব্যবহার

রেডিস কিউ স্টাম্প কিউ দেখুন

সুবিধা

অকাম্পনী বৃদ্ধি সিদ্ধান্তের জন্য ব্যবহার করা যাবে

সীমাবদ্ধতা

গ্রাহককে প্রত্যাশিত ফলাফল ফিরিয়ে দেওয়া সম্পর্কে সরাসরি প্রত্যাখ্যান দেওয়া যাবে না। ফলাফল পুশ করার প্রয়োজন হলে অন্য পরিষেবার সঙ্গে যুক্ত করতে হবে, উদাহরণস্বরূপ webman/push ব্যবহার করা।

নতুন HTTP পোর্ট যুক্ত করুন

দ্রষ্টব্য
এই সুবিধা webman-framework>=1.4 এ পাওয়া যায়

ধীরে ব্যবসা পদক্ষেপ প্রসেসিং এর ব্যবস্থা করার জন্য নতুন HTTP পোর্ট ব্যবহার করা যোতে পারে, এই ধীরে ব্যবসা রিকুয়েস্টগুলি এই পোর্টে একটি নির্দিষ্ট প্রক্রিয়ার মধ্যে প্রসেস করে, প্রসেসিং এর পরে ফলাফলটি সরাসরি গ্রাহককে ফিরিয়ে দেয়।

সুবিধা

ডেটা সরাসরি গ্রাহককে প্রত্যাশিত ফলাফল ফিরিয়ে দেওয়া যাোতে পারে

সীমাবদ্ধতা

অকাম্পনী অপ্রত্যাশিত অধিক অনুরোধের জন্য অনুপ্রেরণা করা যাোতে পারে না

চরমকার পদক্ষেপ

config/process.php তে নিম্নলিখিত বিন্যাস যুক্ত করুন।

return [
    // ... এখানে অন্য কনফিগারেশনগুলি অনুপ্রেরিত হবে ...

    'task' => [
        'handler' => \Webman\App::class,
        'listen' => 'http://0.0.0.0:8686',
        'count' => 8, // প্রসেস সংখ্যা
        'user' => '',
        'group' => '',
        'reusePort' => true,
        'constructor' => [
            'request_class' => \support\Request::class, // রিকুয়েস্ট ক্লাস সেট করুন
            'logger' => \support\Log::channel('default'), // লগ ইন্সট্যান্স
            'app_path' => app_path(), // app পাথের অবস্থান
            'public_path' => public_path() // public পাথের অবস্থান
        ]
    ]
];

এভাবে ধীরে ব্যবসা ইন্টারফেসগুলি http://127.0.0.1:8686/ এই সেটটিতে প্রসেস করা যাোয়, অন্য প্রসেসিং এর ব্যবসা প্রসেসিং এ প্রভাবিত না করতে।

ফ্রন্ট-এন্ড পোর্টের পারদর্শীতা বজায় রাখার জন্য, nginx এ একটি 8686 পোর্টের জন্য প্রক্সি যুক্ত করা যোতে পারে। মনে করুন ধীরে ব্যবসা রিকুয়েস্ট পাথগুলি /tast দিয়ে শুরু হয়, তবে পূর্ণ নিয়ম অনুসরণ করুন:

upstream webman {
    server 127.0.0.1:8787;
    keepalive 10240;
}

# নতুন 8686 অপস্ট্রিম
upstream task {
   server 127.0.0.1:8686;
   keepalive 10240;
}

server {
  server_name webman.com;
  listen 80;
  access_log off;
  root /path/webman/public;

  # /tast দিয়ে প্রোক্সি হিসাবে 8686 পোর্ট থেকে রিকুয়েস্ট করা যাবে, এখানে /tast আপনার প্রিফিক্সের সাথে মিলিত করুন
  location /tast {
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header Host $host;
      proxy_http_version 1.1;
      proxy_set_header Connection "";
      proxy_pass http://task;
  }

  # অন্য অনুরোধগুলির জন্য 8787 পোর্ট থেকে প্রক্সি করা যাবে
  location / {
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header Host $host;
      proxy_http_version 1.1;
      proxy_set_header Connection "";
      if (!-f $request_filename){
          proxy_pass http://webman;
      }
  }
}

এভাবে গ্রাহক দ্বারা ডোমেইন.com/tast/xxx পথগুলি বিশেষভাবে 8686 পোর্টের প্রসেসিং করা হবে, 8787 পোর্টের অনুরোধ প্রসেসিং এর ভ্রান্তি না দেওয়া যাোয়।