কম্পিউটার

Node.js-এ async.queue() পদ্ধতি


async মডিউল একটি nodejs অ্যাপ্লিকেশনে অ্যাসিঙ্ক্রোনাস জাভাস্ক্রিপ্টের সাথে কাজ করার জন্য বিভিন্ন কার্যকারিতা প্রদান করে। async.queue() পদ্ধতিটি একটি সারি প্রদান করে যা পরবর্তী প্রক্রিয়াগুলির সমসাময়িক প্রক্রিয়াকরণের জন্য যেমন একটি সময়ে/তাত্ক্ষণিক আইটেমগুলির একাধিক প্রক্রিয়াকরণের জন্য ব্যবহৃত হয়৷

async.queue()

ইনস্টল এবং ব্যবহার করা

ধাপ 1 - নোড প্যাকেজ ম্যানেজার শুরু করতে নিম্নলিখিত কমান্ডটি চালান।

npm init

ধাপ 2 - নিম্নলিখিত কমান্ড ব্যবহার করে async মডিউল ইনস্টল করা হচ্ছে।

npm install --save async

ধাপ 3 - আপনার প্রোগ্রামে নিচের বিবৃতি ব্যবহার করে অ্যাসিঙ্ক মডিউল আমদানি করা হচ্ছে।

const async = require('async')

সিনট্যাক্স

async.queue('function', 'concurrency value')

পরামিতি

উপরের পরামিতিগুলি নীচে −

হিসাবে বর্ণনা করা হয়েছে
  • ফাংশন – এই প্যারামিটারটি ফাংশনকে সংজ্ঞায়িত করে যা সারিতে যোগ করা উপাদানের উপর কার্যকর করা হবে।

  • সঙ্গতি মান – এই ক্ষেত্রটি একটি সময়ে প্রক্রিয়াকরণ করা উপাদানগুলির সংখ্যা নির্ধারণ করে৷

async.queue() পদ্ধতিতে আরও একাধিক পদ্ধতি এবং বৈশিষ্ট্য রয়েছে যা অ্যাসিঙ্ক অনুরোধগুলি প্রক্রিয়া করার সময় ব্যবহার করা হবে৷

  • ধাক্কা (উপাদান, কলব্যাক) - একটি সাধারণ সারির মতোই, পুশ পদ্ধতিটি একটি সারির লেজে একটি উপাদান যোগ করার জন্য ব্যবহৃত হয়।

queue.push(item, callback);
  • দৈর্ঘ্য() - দৈর্ঘ্য পদ্ধতিটি একবারে একটি সারিতে উপস্থিত উপাদানগুলির সংখ্যা ফেরত দেওয়ার জন্য ব্যবহৃত হয়৷

queue.length()
  • শুরু সম্পত্তি - এই বৈশিষ্ট্যটি একটি বুলিয়ান মান প্রদান করে যে সারি সম্পর্কে তথ্য প্রদান করে যে এটি এর উপাদানগুলি প্রক্রিয়াকরণ শুরু করেছে কিনা।

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

queue.unshift(item, callback)
  • ড্রেন() পদ্ধতি - এই পদ্ধতিটি একটি কলব্যাক ইস্যু করে যখন সারিটি সমস্ত কার্য/উপাদান সম্পাদন করে। এটি তখনই কাজ করে যখন ফাংশনটি একটি তীর ফাংশনে বর্ণিত হয়৷

queue.drain(() => {
   console.log(“All Tasks are completely executed...”);
}
  • পজ() পদ্ধতি এই পদ্ধতিটি সারিতে থাকা অবশিষ্ট উপাদানগুলির সম্পাদন করে। resume() কল করার পরে ফাংশনটি চলতে থাকবে।

queue.pause()
  • resume() পদ্ধতি - এই পদ্ধতিটি পজ() পদ্ধতি ব্যবহার করে আটকে রাখা উপাদানগুলির সম্পাদন পুনরায় শুরু করার জন্য ব্যবহৃত হয়।

queue.resume()
  • হত্যা () পদ্ধতি - এই পদ্ধতিটি সারির সমস্ত অবশিষ্ট উপাদানগুলিকে সরিয়ে দেয় এবং এটিকে একটি নিষ্ক্রিয় অবস্থায় বাধ্য করে৷

queue.kill()
  • অলস() পদ্ধতি - এই পদ্ধতিটি একটি বুলিয়ান অবস্থা প্রদান করে যা নির্দেশ করে যে সারিটি নিষ্ক্রিয় বা কিছু প্রক্রিয়া করা হচ্ছে কিনা৷

queue.idle

উদাহরণ

উপরের ধারণাগুলি আরও ভালভাবে বোঝার জন্য আসুন একটি উদাহরণ দেখি -

// Including the async module
const async = require('async');

// Creating an array for all elements execution
const tasks = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];

// Initializing the queue
const queue = async.queue((task, executed) => {
   console.log("Currently Busy Processing Task " + task);

   setTimeout(()=>{
      // Number of tasks remaining and to be processed
      const tasksRemaining = queue.length();
      executed(null, {task, tasksRemaining});
   }, 1000);

}, 1); // concurrency value = 1

// Queue is idle initially as no elements are there...
console.log(`Queue Started ? ${queue.started}`)

// Adding each task from the tasks list
tasks.forEach((task)=>{

   // Adding the task 5 to the head for priority execution
   if(task == 5){
      queue.unshift(task, (error, {task, tasksRemaining})=>{
         if(error){
            console.log(`An error occurred while processing task ${task}`);
         }else {
            console.log(`Finished processing task ${task}. ${tasksRemaining} tasks remaining`);
         }
      })
      // Adding all the tasks at tail to be executed except task 5
   } else {
      queue.push(task, (error, {task, tasksRemaining})=>{
         if(error){
            console.log(`An error occurred while processing task ${task}`);
         }else {
            console.log(`Finished processing task ${task}. ${tasksRemaining}
            tasks remaining`);
         }
      })
   }
});

// Executes the callback when the queue is done processing all the tasks
queue.drain(() => {
   console.log('All items are succesfully processed !');
})

// Checking if the queue is started after adding tasks
console.log(`Queue Started ? ${queue.started}`)

আউটপুট

C:\home\node>> node asyncQueue.js
Queue Started ? False
Queue Started ? True
Currently Busy Processing Task 5
Finished processing task 5. 9 tasks remaining
Currently Busy Processing Task 1
Finished processing task 1. 8 tasks remaining
Currently Busy Processing Task 2
Finished processing task 2. 7 tasks remaining
Currently Busy Processing Task 3
Finished processing task 3. 6 tasks remaining
Currently Busy Processing Task 4
Finished processing task 4. 5 tasks remaining
Currently Busy Processing Task 6
Finished processing task 6. 4 tasks remaining
Currently Busy Processing Task 7
Finished processing task 7. 3 tasks remaining
Currently Busy Processing Task 8
Finished processing task 8. 2 tasks remaining
Currently Busy Processing Task 9
Finished processing task 9. 1 tasks remaining
Currently Busy Processing Task 10
Finished processing task 10. 0 tasks remaining
All items are succesfully processed !

  1. C# এ সারি। পিক পদ্ধতি

  2. C# এ কিউ.কপিটো() পদ্ধতি

  3. C# এ সারি রয়েছে।

  4. C# এ সারি। সিঙ্ক্রোনাইজড() পদ্ধতি