দীর্ঘ চলমান অ্যাসিনক্রোনাস কাজ পরিচালনা করার সময় সেরা অনুশীলনগুলি


12

আমি এমন একটি প্রকল্পের নকশার পর্যায়ে আছি যেখানে শেষ ব্যবহারকারীরা একটি ওয়েব পৃষ্ঠা থেকে একটি অনুরোধ জমা দেবে যা দীর্ঘকাল ধরে চলমান অ্যাসিনক্রোনাস প্রক্রিয়াজাত চাকরীটিকে স্প্যান করবে। এই সমস্যার জন্য একটি "সেরা অনুশীলন" আছে? ওয়েব পরিষেবাদি এবং পরিষেবা দালালরা কি ভাল পথে যেতে পারে? মাইক্রোসফ্ট মেসেজিং কিউ এখানে প্রযোজ্য?


যদি ওয়েবে এটি করা হয় এবং যদি এটি খুব দীর্ঘ সময় নেয় তবে আপনি এটি সম্পূর্ণ হয়ে গেলে ব্যবহারকারীকে একটি পাঠ্য বার্তা বা ইমেল প্রেরণ করতে পারেন।
কাজ

উত্তর:


6

আমি "সেরা অনুশীলন" সম্পর্কে জানি না। আমি সবচেয়ে সাধারণ ভুল জানি।

প্রথম ত্রুটি: ডস নিজেই

আপনি দীর্ঘকালীন কাজটি প্রক্রিয়া করতে ওয়েবহ্যান্ডলারটি ব্যবহার করেন। এটি আপনার চলমান হিটগুলির শতাংশের উপর নির্ভর করে খারাপ বা চরম খারাপ হতে পারে যেগুলি দীর্ঘকালীন চাকরিতে পরিণত হয়, তারা কত দিন চালায় এবং কতটা টেকসই ট্র্যাফিক আপনি পান।

আপনি এটি নিশ্চিত করতে চান যে দীর্ঘ সময় ধরে কাজটি শেষ হতে সময়কালের মধ্যে আপনি 1 টিরও বেশি দীর্ঘ চলমান কাজ পাচ্ছেন না। আপনি যদি নিজেই ডস করেন। শতকরা হার এবং সময় ধারাবাহিকভাবে ধরে রেখে আপনি যত বেশি ট্র্যাফিক গ্রহণ করবেন এটি আরও খারাপ হবে। এটি ট্র্যাফিক বৃদ্ধির সীমাবদ্ধতা স্ব-চাপিয়ে দেয় এমন সমস্যাগুলির মধ্যে একটি।

দ্বিতীয় ত্রুটি: ওয়েবহ্যান্ডলার থেকে স্প্যানিং

একটি দীর্ঘ চলমান প্রক্রিয়া পরিচালনা করতে ওয়েব হ্যান্ডলারের কাছ থেকে কোনও প্রক্রিয়া তৈরি করা জটিল হতে পারে এবং ফলস্বরূপ ত্রুটি প্রবণও।

  • আপনাকে সঠিকভাবে পিতামাতার কাছ থেকে পৃথক করতে হবে অন্যথায় ওয়েবহ্যান্ডলার সন্তানের সম্পূর্ণ হওয়ার জন্য অপেক্ষা করে।
  • আপনি যখন ইউনিক্সে কোনও শিশুকে কাঁটাচামচ করেন তখন পিতামাতার কাছ থেকে খোলা হ্যান্ডলগুলি উত্তরাধিকার সূত্রে পান। এগুলি ওভাররাইট করা না থাকলে এগুলি স্বয়ংক্রিয়ভাবে বন্ধ হয়ে যাবে। এর মধ্যে ডেটাবেস সংযোগ, ফাইলহ্যান্ডলস, অন্যান্য ওপেন নেটওয়ার্ক সংযোগের মতো জিনিস রয়েছে। সন্তানের প্রক্রিয়া শেষ হলে এগুলি সব বন্ধ হয়ে যায়

বিকল্প

আমি সাধারণত at(1)কাঁটা ছাড়াই ওয়েবহ্যান্ডলার থেকে পরিষ্কারভাবে বিচ্ছিন্ন করতে ব্যবহার করি ।

আপনি এর সাথে একটি পোলিং বাস্তবায়নও ব্যবহার করতে পারেন cron

আপনি অন্য একটি সার্ভার প্রক্রিয়াতে যোগাযোগ করতে পারেন যা প্রক্রিয়া পরিচালনা করে। যে যোগাযোগ সহ কাজ করা যেতে পারে sockets, pipesবিশ্রাম HTTP কল বা একটি সারিতে বার্তা রাউটিং মত, অথবা উচ্চ স্তরের বিমূর্ত।


2

আমি মনে করি আপনি কয়েক মিনিটেরও বেশি কথা বলছেন।

যদি এটি কয়েক মিনিট হয়, আপনি ব্যাকগ্রাউন্ডে একটি কর্মী থ্রেড চালু করতে পারেন এবং ইউআইতে কিছু অগ্রগতি প্রদর্শন করতে পারেন। প্রচুর ওয়েব অ্যাপ্লিকেশন সে পদ্ধতিটি ব্যবহার করে।

যদি এটির চেয়ে বেশি হয়, 5 মিনিট বলুন, আপনি কোনও উত্সর্গীকৃত পরিষেবাতে কার্যটি অর্পণ করতে চাইতে পারেন। একটি উদাহরণ হ'ল গুগল অ্যানালিটিক্স দ্বারা উত্পন্ন প্রতিবেদনগুলি।

মাইক্রোসফ্ট মেসেজিংয়ের সারিটি সিস্টেম থেকে অন্যটিতে বা অন্য উপাদানগুলিতে তথ্য স্থানান্তর করতে ব্যবহার করা যেতে পারে।


পিএইচপি এর মতো ভাষা কীভাবে এটি সম্পাদন করে? আমি কয়েকটি ওয়েব অ্যাপ্লিকেশন জানি যা এটি করে তবে পিএইচপি
TheLQ

আমি কোনও পিএইচপি বিশেষজ্ঞ নই, তবে আমি অনুমান করি যে একই পৃষ্ঠার দ্বারা সূচিত থ্রেডের পরিবর্তে আরেকজন বলা হয়। আসলে এজেএক্সের সাথে এটিই ঘটে।
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.