পাইথনে অ্যাসিঙ্ক্রোনাস প্রোসেসিং

পাইথনে অ্যাসিঙ্ক্রোনাস প্রোসেসিং

এই প্রবন্ধটি পাইথনে অ্যাসিঙ্ক্রোনাস প্রোসেসিং ব্যাখ্যা করে।

আপনি পাইথনের async/await এবং asyncio মডিউলের মৌলিক ব্যবহারের কোড নমুনাগুলি শিখতে পারবেন।

YouTube Video

পাইথনে অ্যাসিঙ্ক্রোনাস প্রোসেসিং

পাইথনে অ্যাসিঙ্ক্রোনাস প্রসেসিং হল একটি পদ্ধতি যা সময়সাপেক্ষ ইনপুট আউটপুট অপারেশনগুলো যেমন ফাইল পড়া ও লেখা বা নেটওয়ার্ক যোগাযোগ দক্ষতার সঙ্গে পরিচালনা করতে ব্যবহার করা হয়। সিঙ্ক্রোনাস প্রসেসিং-এ পরবর্তী অপারেশন বর্তমানটি শেষ না হওয়া পর্যন্ত অপেক্ষা করে, কিন্তু অ্যাসিঙ্ক্রোনাস প্রসেসিং-এর ক্ষেত্রে অপেক্ষার সময়ের মধ্যেই আপনি অন্য কাজ করতে পারেন। পাইথনে অ্যাসিঙ্ক্রোনাস প্রসেসিং করার জন্য asyncio মডিউলটি দেওয়া হয়েছে। এখানে আমরা এর মৌলিক উপাদানসমূহ এবং কীভাবে সেগুলি ব্যবহার করতে হয়, ধাপে ধাপে ব্যাখ্যা করব।

মূল সিনট্যাক্স

অ্যাসিঙ্ক্রোনাস প্রসেসিং-এর কেন্দ্রে রয়েছে করৌটিন নামে পরিচিত ফাংশনসমূহ। async ফাংশন অ্যাসিঙ্ক্রোনাস ফাংশন সংজ্ঞায়িত করে এবং await কীওয়ার্ড ঐসব ফাংশনের মধ্যে অ্যাসিঙ্ক্রোনাস কাজের জন্য অপেক্ষা করতে ব্যবহৃত হয়।

 1import asyncio
 2
 3async def say_hello():
 4    print("Hello")
 5    await asyncio.sleep(1)
 6    print("World")
 7
 8if __name__ == "__main__":
 9    # Execute asynchronous task
10    asyncio.run(say_hello())
  • উপরের কোডে, say_hello ফাংশনটিকে একটি অ্যাসিঙ্ক্রোনাস কাজ হিসাবে সংজ্ঞায়িত করা হয়েছে। sleep() দ্বারা ১ সেকেন্ড অপেক্ষা করার সময়, অন্যান্য অ্যাসিঙ্ক্রোনাস টাস্কগুলো সম্পাদিত হতে পারে।

অনেকগুলি কাজ সম্পন্ন করা

asyncio মডিউলের gather ফাংশন ব্যবহার করে, আপনি একাধিক টাস্ক একসাথে চলাতে পারেন।

 1import asyncio
 2
 3async def task1():
 4    print("Task 1 started")
 5    await asyncio.sleep(2)
 6    print("Task 1 completed")
 7
 8async def task2():
 9    print("Task 2 started")
10    await asyncio.sleep(1)
11    print("Task 2 completed")
12
13async def main():
14    await asyncio.gather(task1(), task2())
15
16if __name__ == "__main__":
17    asyncio.run(main())
  • এই উদাহরণে, task1 এবং task2 একসঙ্গে বাস্তবায়িত হয়। ফলস্বরূপ, task2 দুই কাজের মধ্যে প্রথমে সম্পন্ন হয়, কিন্তু মোট সম্পন্ন সময় দীর্ঘতম কাজের সাথে সমান থাকে।

ত্রুটি পরিচালনা

অ্যাসিঙ্ক্রোনাস প্রোসেসিংয়ের ক্ষেত্রেও ত্রুটি পরিচালনা গুরুত্বপূর্ণ। আপনি সাধারণ try-except সিনট্যাক্স ব্যবহার করে ত্রুটি ধরতে এবং পরিচালনা করতে পারেন।

 1import asyncio
 2
 3async def faulty_task():
 4    raise Exception("An error occurred")
 5
 6async def main():
 7    try:
 8        await faulty_task()
 9    except Exception as e:
10        print(f"Caught an error: {e}")
11
12if __name__ == "__main__":
13    asyncio.run(main())
  • এই কোডটি দেখায় কীভাবে অ্যাসিঙ্ক্রোনাস ফাংশনের মধ্যে ঘটানো এক্সসেপশনগুলোকে try-except ব্যবহার করে ধরা যায় এবং তাদের এরর মেসেজ নিরাপদভাবে পরিচালনা করা যায়। faulty_task থেকে আগত এক্সসেপশনটি main ফাংশনের মধ্যে ধরা হয় এবং সঠিকভাবে আউটপুট দেওয়া হয়।

সারসংক্ষেপ

পাইথনের অ্যাসিঙ্ক্রোনাস প্রসেসিং-এ async / awaitasyncio ব্যবহার করে ইনপুট আউটপুটের জন্য অপেক্ষা করার সময় একাধিক কাজ একসাথে সম্পাদন করা যায়, ফলে দক্ষতার সঙ্গে প্রসেসিং সম্ভব হয়। একাধিক কাজের সমান্তরাল এক্সিকিউশন ও অ্যাসিঙ্ক্রোনাস ইনপুট আউটপুট ব্যবহার করে আপনি পারফরম্যান্স বহুলাংশে বাড়াতে পারেন। অতিরিক্তভাবে, আপনি সাধারণ try-except-এর মতোই ত্রুটি পরিচালনা করতে পারেন বলে অ্যাসিঙ্ক্রোনাস কোড নিরাপদে চালাতে পারবেন।

আপনি আমাদের ইউটিউব চ্যানেলে ভিজ্যুয়াল স্টুডিও কোড ব্যবহার করে উপরের নিবন্ধটি অনুসরণ করতে পারেন। দয়া করে ইউটিউব চ্যানেলটিও দেখুন।

YouTube Video