পাইথনের পাকস্থলির একটি পরিষ্কার, হালকা ওজনের বিকল্প? [বন্ধ]


222

একটি (দীর্ঘ) এর আগে আমি একটি ওয়েব-মাকড়সা লিখেছিলাম যা একই সময়ে একইসাথে অনুরোধগুলি সক্রিয় করতে আমি মাল্টিথ্রেড করেছি। এটি আমার পাইথন যৌবনে ছিল, আমি জিআইএল এবং এর সাথে সম্পর্কিত সমস্যাগুলি সম্পর্কে জানতাম যে দিনগুলি এটি বহুবিবাহিত কোডের জন্য তৈরি করে (IE, বেশিরভাগ সময় জিনিসগুলি কেবল সিরিয়ালায়িত হয়!) ...

আমি এই কোডটিকে আরও শক্তিশালী করতে এবং আরও ভাল সম্পাদন করতে পুনরায় কাজ করতে চাই। আমি এটি করতে পারার দুটি উপায় রয়েছে: আমি নতুন মাল্টিপ্রসেসিং মডিউলটি 2.6+ এ ব্যবহার করতে পারি বা আমি কোনও ধরণের চুল্লি / ইভেন্ট-ভিত্তিক মডেলের জন্য যেতে পারি। আমি বরং পরে এটি করব কারণ এটি অনেক সহজ এবং ত্রুটি-ঝুঁকির চেয়ে কম।

সুতরাং প্রশ্নটি কীভাবে কাঠামোটি আমার প্রয়োজনের জন্য সবচেয়ে উপযুক্ত হবে তার সাথে সম্পর্কিত। নীচে আমি এখন পর্যন্ত যে বিকল্পগুলি জানি তার একটি তালিকা রয়েছে:

  • পাকানো : পাইথন চুল্লির ফ্রেমওয়ার্কগুলির দাদাদি: জটিল এবং কিছুটা ফুলেছে বলে মনে হচ্ছে। একটি ছোট কাজের জন্য খাড়া শেখার বক্ররেখা।
  • ইভেন্টলেট : লিন্ডেন্লাবের ছেলেদের কাছ থেকে । গ্রিনলেট ভিত্তিক কাঠামো যা এই ধরণের কাজের দিকে এগিয়ে যায়। যদিও আমি কোডটি একবারে দেখেছি এবং এটি খুব সুন্দর নয়: নন-পেপ 8 অনুগত, প্রিন্টের সাথে ছড়িয়ে ছিটিয়ে আছে (লোকেরা কেন এটি কোনও ফ্রেমওয়ার্কে করে !?), এপিআই কিছুটা বেমানান বলে মনে হচ্ছে।
  • পাইয়েভ : অপরিণত, এখনই কেউ এটি ব্যবহার করছে বলে মনে হচ্ছে না যদিও এটি মুক্তির উপর ভিত্তি করে তাই এটি একটি শক্ত ব্যাকএন্ড পেয়েছে।
  • অ্যাসিঙ্কোর : স্ট্ডলিব থেকে: নিম্ন স্তরের থেকে, মনে হয় কেবল কিছুটা মাটি থেকে নামার জন্য লেগওয়ার্ক জড়িত।
  • টর্নেডো : যদিও এটি একটি সার্ভার ওরিয়েন্টেড পণ্য যা সার্ভার গতিশীল ওয়েবসাইটগুলির জন্য ডিজাইন করা হয়েছে এটিতে একটি অ্যাসিঙ্ক এইচটিটিপি ক্লায়েন্ট এবং একটি সরল আইলোপ রয়েছে । দেখে মনে হচ্ছে এটি কাজটি করতে পারে তবে এটির উদ্দেশ্যে কী ছিল না। [সম্পাদনা করুন: দুর্ভাগ্যক্রমে উইন্ডোজে চালিত হয় না, যা আমার পক্ষে এটি গণ্য করে - এটি আমার জন্য এই লম্পট প্ল্যাটফর্মটি সমর্থন করা দরকার]

আমি কিছু মিস করেছি কি? নিশ্চয়ই সেখানে একটি লাইব্রেরি থাকতে হবে যা একটি সরলীকৃত অ্যাসিঙ্ক নেটওয়ার্কিং লাইব্রেরির মিষ্টি স্পটে ফিট করে!

[সম্পাদনা করুন: এই পৃষ্ঠায় তার পয়েন্টারটির জন্য আন্তরিক ধন্যবাদ । আপনি নীচে স্ক্রোল করলে আপনি দেখতে পাবেন যে প্রকল্পগুলির একটি দুর্দান্ত তালিকা রয়েছে যা লক্ষ্য করে যে এই কাজটি একভাবে বা অন্য কোনওভাবে মোকাবেলা করতে। এটি আসলে মনে হয় যে জিনিসগুলি আসলেই মোচড়ের সূচনার সময় থেকেই এগিয়ে গেছে: লোকেরা এখন একটি traditionalতিহ্যবাহী চুল্লি / কলব্যাক ওরিয়েন্টেড পরিবর্তে একটি কো-রুটিন ভিত্তিক সমাধানের পক্ষে বলে মনে হচ্ছে । এই পদ্ধতির সুবিধাগুলি আরও স্পষ্টতর সরাসরি কোড: আমি অবশ্যই অতীতে খুঁজে পেয়েছি, বিশেষত যখন boost.asio এর সাথে কাজ করার সময়সি ++ তে যে কলব্যাক ভিত্তিক কোড এমন নকশাগুলির দিকে নিয়ে যেতে পারে যা কঠোর অনুসরণ করতে পারে এবং প্রশিক্ষণহীন চোখের তুলনায় অপেক্ষাকৃত অস্পষ্ট। সহ-রুটিনগুলি ব্যবহার করে আপনি এমন কোড লিখতে পারবেন যা অন্ততপক্ষে আরও কিছুটা সিঙ্ক্রোনাস দেখাচ্ছে। আমার ধারণা এখন আমার কাজটি হ'ল এই অনেকগুলি লাইব্রেরির মধ্যে কোনটি আমার পছন্দ এবং এটি দিয়ে যেতে! খুশি আমি এখন জিজ্ঞাসা করেছি ...]

[সম্পাদনা করুন: যে কেউ এই প্রশ্ন অনুসরণ করে বা হোঁচট খেয়েছে বা এই অর্থে যে কোনও অর্থে যত্নশীল তার পক্ষে আগ্রহের বিষয়: আমি এই কাজের জন্য উপলব্ধ সরঞ্জামগুলির বর্তমান অবস্থার সত্যই দুর্দান্ত লেখার সন্ধান পেয়েছি ]


14
পাইথন হয় মাল্টি, এটা ঠিক দুই থ্রেড পাইথন কোড একই সময়ে চালানোর জন্য অনুমতি দেয় না।
intgr

86
আমি আপনার প্রশ্নের উত্তরগুলির চেয়ে অনেক বেশি শিখেছি।
ডেনিস ওটকিডাচ

2
@ ডেনিস: হেই, ধন্যবাদ আমার ধারণা! উত্তরগুলিতে খুব ভাল পয়েন্টার রয়েছে, বিশেষত ইন্টিগ্রেসের। আমি সেখানে প্রচুর অপশন সম্পর্কে জানতাম এবং আমি কেবল সেগুলি দিয়ে উত্তরগুলি প্যাক করতে চাইনি তাই আমি ভেবেছিলাম যে আমি কী জানি
বানানটির ঝামেলাতে যাব

5
> লোকেরা এখন একটি traditionalতিহ্যবাহী চুল্লি / কলব্যাক ওরিয়েন্টেড পরিবর্তে একটি কো-রুটিন ভিত্তিক সমাধানের পক্ষে বলে মনে হচ্ছে এটি কোনও বুদ্ধিমান তুলনা নয়। "কো-রুটিন ভিত্তিক সমাধান" এবং "চুল্লিমুখী" সমাধানগুলি অরথোগোনাল। (পাইথনের কর্টিন নেই বলে এড়িয়ে যাওয়া) টুইস্টের ইনলাইনক্যালব্যাকগুলি একবার দেখুন, আপনি কীভাবে একটি শক্তিশালী, পরিপক্ক নেটওয়ার্কিং স্তর যা আপনাকে জটিল প্ল্যাটফর্মের আইডিয়োসিগ্রেশিতে প্রকাশ করতে চলেছে না তার সাথে প্রোগ্রামিং শৈলীটি কীভাবে পছন্দ করতে পারে বলে দেখতে পারেন।
জিন-পল ক্যালডারোন

2
কয়েকটি বিষয় যুক্ত করতে হবে: 1. টর্নেডো উইন্ডোজে খুব ভালভাবে চলে। এটি কেবল পারফরম্যান্ট এবং স্কেলযোগ্য নয় কারণ এটি selectI / O মাল্টিপ্লেক্সিংয়ের জন্য ব্যবহার করে। তবে আপনার টর্নেডো-পিউভ দিয়ে একটি সুন্দর পারফরম্যান্স পাওয়া উচিত । ২. পাইথন ৩.৩+ এ এখন অ্যাসিনসিও রয়েছে এবং এর ব্যাকপোর্ট ট্রোলিয়াস যা তার ইভেন্ট লুপে কোনও টর্নেডো অ্যাপ্লিকেশন চালাতে দেয় ( টুইস্টটি শীঘ্রই সমর্থিত হবে)।
স্ক্ল্যামার

উত্তর:


28

আমি সম্মিলিত পাইথন মডিউলটি পছন্দ করেছি যা হালকা ওজনের থ্রেডিংয়ের জন্য স্ট্যাকলেস পাইথন মাইক্রোথ্রেডস বা গ্রিনলেটগুলির উপর নির্ভর করে। সমস্ত ব্লকিং নেটওয়ার্ক I / O স্বচ্ছভাবে একটি একক libeventলুপের মাধ্যমে অ্যাসিনক্রোনাস তৈরি করা হয়েছে , সুতরাং এটি আসল অ্যাসিনক্রোনাস সার্ভারের মতো প্রায় দক্ষ হওয়া উচিত।

আমি মনে করি এটি এইভাবে ইভেন্টলেটের অনুরূপ।

ক্ষতিটি হ'ল এটির এপিআই পাইথনের sockets/ threadingমডিউলগুলির থেকে একেবারে পৃথক ; আপনাকে আপনার অ্যাপ্লিকেশনটির মোটামুটি নতুন করে লিখতে হবে (বা একটি সামঞ্জস্যের শিম স্তরটি লিখুন)

সম্পাদনা: দেখে মনে হচ্ছে এটিও কোজেন রয়েছে যা একই রকম তবে গ্রীলেটগুলির পরিবর্তে পাইথন 2.5 এর বর্ধিত জেনারেটরগুলি এর করোটাইনগুলির জন্য ব্যবহার করে। এটি সম্মিলন এবং অন্যান্য বিকল্পগুলির চেয়ে আরও বহনযোগ্য করে তোলে। নেটওয়ার্ক I / O সরাসরি এপল / কেকিউ / আইওসিপি দিয়ে সম্পন্ন হয়।


@ আইটিজিআর: দুর্দান্ত লিঙ্কগুলি। আমি দুজনকে আগে একবার দেখেছি, এগুলি হ'ল ধরণের জিনিস যা আমি প্রত্যাশিত আশা করছিলাম। +1
jkp

3
মনে হচ্ছে সম্মতিটি একটি মৃত প্রকল্প যা চার বছর আগে তাদের শেষ আপডেট।
Gewthen

প্রকল্প মারা গেছে, তাই হাইভস!
বাহাদির ক্যামবেল

1
পাইথন 2.5 এর পরে অনেক কিছু ঘটেছে। পাইথন ৩.৩ এ অ্যাসিনসিও দুর্দান্ত।
জোসেফ শেডি

99

পেঁচানো জটিল, আপনি ঠিক এই সম্পর্কে। পাকানো ফুলে যায় না

আপনি যদি এখানে একবার দেখুন: http://twistedmatrix.com/trac/browser/trunk/twisted আপনি ইন্টারনেটের অনেক প্রোটোকলের একটি সংগঠিত, বিস্তৃত এবং খুব ভাল পরীক্ষিত স্যুট , পাশাপাশি লেখার জন্য সহায়ক কোড পাবেন find এবং অত্যন্ত পরিশীলিত নেটওয়ার্ক অ্যাপ্লিকেশন স্থাপন করুন। আমি ব্লাটকে বিস্তৃত করে বিস্তৃত করব না

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


4
@ ক্লেমেশা: সম্ভবত আপনি ঠিক বলেছেন, এবং এটি বোঝা হয়নি, তবে মনে হয় সরল কিছু করার জন্য মাথা ঘুরিয়ে দেওয়ার চেয়ে আরও অনেক বেশি কিছু আছে। আমি অ্যাসিঙ্ক প্রোগ্রামিংটি বুঝতে পেরেছি, আমি সি ++ তে বুস্টের সাথে কাজ করেছি :: অ্যাসিও যাতে ধারণাগুলি নতুন নয়, তবে এটি সমস্ত গাম্ফ যা বাঁকানো জিনিসগুলির সাথে প্রতিযোগিতা করে: এটি সম্পূর্ণ নতুন পৃথিবী, অনেকটা জাজানো যেমন ওয়েব স্টাফের জন্য। আবার যখন আমি ওয়েব স্টাফগুলি করি তখন আমি লাইটওয়েট ডাব্লুএসজিআই কোড দিয়ে কাজ করি এবং কেবল আমার যা প্রয়োজন তা একসাথে প্লাগ করি। আমি অনুমান কোর্স জন্য ঘোড়া।
jkp

7
@ ক্লেমেশা: এরম, আমি আজ নিমজ্জনটি দেখেছি: 20 এমবি-তে মোচড়া ওজন! এমনকি কোরটি 12MB এর .... এটি যদি স্ফীত না হয় তবে আমি কী তা নিশ্চিত তা নিশ্চিত নই।
jkp

29
বেসিক ট্যুইস্টেড এপিআইগুলি বেশ ছোট (চুল্লী, মুলতুবি, প্রোটোকল)। টুইস্টেড কোডগুলির বেশিরভাগটি সেই বেসিকগুলি ব্যবহার করে async প্রোটোকল বাস্তবায়ন। "ব্লোট" এখানে দরকারী বিশেষণ নয় (বা প্রকৃতপক্ষে বেশিরভাগ ক্ষেত্রে)। মোটা আকারের জিনিস এটি যে পরিমাণ স্টাফ দেয় তার জন্য উপযুক্ত।
daf

56

gevent হয় eventlet পরিষ্কার

এপিআই-ভিত্তিক এটি স্ট্যান্ডার্ড লাইব্রেরি (বিশেষত থ্রেডিং এবং মাল্টিপ্রসেসিং মডিউল) হিসাবে একই কনভেনশনগুলি অনুসরণ করে যেখানে এটি উপলব্ধি করে। সুতরাং আপনার সাথে কাজ করার জন্য কুই এবং ইভেন্টের মতো পরিচিত জিনিস রয়েছে।

এটি কেবল রিভ্যাক্টর বাস্তবায়ন হিসাবে লিভেন্ট ( আপডেট: ০.০ থেকে ল্যাভ ) সমর্থন করে তবে এর সম্পূর্ণ সুবিধা গ্রহণ করে, লিভেন্ট-HT-র উপর ভিত্তি করে একটি দ্রুত ডাব্লুএসজিআই সার্ভার এবং অন্যান্য লাইব্রেরির মতো থ্রেড পুল ব্যবহার করার বিপরীতে লিভেন্ট-ডিএনএসের মাধ্যমে ডিএনএস কোয়েরিগুলি সমাধান করে না। ( আপডেট: যেহেতু 1.0 সি-অরিজগুলি অ্যাসিঙ্ক ডিএনএস অনুসন্ধান করতে ব্যবহৃত হয়; থ্রেডপুলটিও একটি বিকল্প))

Eventlet মত, এটা callbacks করে তোলে এবং ব্যবহার করে অপ্রয়োজনীয় Deferreds greenlets

উদাহরণগুলি দেখুন: একাধিক url এর একযোগে ডাউনলোড , দীর্ঘ পোলিং ওয়েবচ্যাট


4
আমি দ্বিতীয় জেনভেট করব - অনেকগুলি সমাধান পর্যালোচনা করার পরে, জেনভেন্টটি আমার পক্ষে খুব ভাল কাজ করেছিল। এটি আমাকে আমার বিদ্যমান প্রোগ্রামের আরও ভাল অংশটি ধরে রাখতে পেরেছিল, এবং যে পরিবর্তনগুলি প্রয়োজন ছিল তা ছিল তুচ্ছ - সর্বোপরি, কোডটি যদি 3, 4, 5, ... বছর বজায় রাখতে হয় তবে এটি এখনও তৈরি করে জেন্টের সাথে পরিচিত না এমন কারও কাছে বোধগম্য, ট্যুইস্টেডদের জন্য সবচেয়ে বড় শোস্টোপারটি হ'ল শক্তিশালী লার্নিং কার্ভ, এটি কেবল কার্যকর করার সময় নয়, রক্ষণাবেক্ষণের সময় লাইনটি আরও নিচে নামিয়ে তোলে ...
মার্টিন টর্নয়েজ

27

এই ধরনের ফ্রেমওয়ার্কগুলির একটি সত্যই আকর্ষণীয় তুলনা নিকোলাস পিল তাঁর ব্লগে সংকলিত করেছিলেন: এটি পড়ার পক্ষে উপযুক্ত!


2
যদিও আমি সম্মত হয়েছি যে নিবন্ধটি একটি আকর্ষণীয় পাঠ ছিল, তবে আমি উপস্থাপিত মানদণ্ডগুলির বৈধতা বিবেচনা করা সার্থক বলে মনে করি। মন্তব্যগুলি এখানে দেখুন: reddit.com/r/programming/comments/ahepg/…
ক্লেমেশা

1
@ ক্লেমেশা, যদিও এই রেডডিট পৃষ্ঠার মূল বিষয়টি লক্ষণীয়, তবুও বেঞ্চমার্কটি একটি দ্বৈত কোর মেশিনে করা হয়েছিল এবং সম্ভবত বর্ণিত মারাত্মক ত্রুটি ভুগছিলেন না। আমি এটা অনুমান করা সম্ভব ক্লায়েন্ট ও সার্ভারের দৌড়ে একই কোর উপর, কিন্তু এটা সম্ভবত মনে হচ্ছে না।
পিটার হ্যানসেন

15

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


একাধিক প্রক্রিয়া ব্যবহার করে ভুল কি?
এমিল ইভানভ

3
মোটেও কিছুই নয়, সুতরাং মাল্টিপ্রসেসিং মডিউলটি ব্যবহার করার পরামর্শ।
অ্যাডাম হাপ

11

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

তবে, এখন যেহেতু আমি এটির সাথে আরও কিছু কাজ করেছি আমাকে বলতে হবে যে সমস্ত ব্যাটারি অন্তর্ভুক্ত করা খুব সুন্দর।

অন্যান্য যে সমস্ত অ্যাসিঙ্ক লাইব্রেরি আমি শেষ পর্যন্ত কাজ করেছি তার চেয়ে কম পরিপক্ক হয়ে উঠছে। পাকানো ইভেন্টের লুপটি শক্ত।

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


যদি আপনি কখন উইন্ডোজ অধীনে gtk চুল্লি বাস্তবায়িত হয় ( সর্বাধিক 10 মিমি : পোলিং পোল্টিং : twistedmatrix.com/trac/browser/trunk/twisted/internet/… ) সন্ধান করে থাকেন, আপনি সেই "পরিণত" না বলবেন ...
স্ক্ল্যামার

2
হাই @ স্ক্লামার বিদ্যুত্ দক্ষতা সম্পর্কে খুব কম উদ্বেগ ছিল এমন দিনে, জিটিকে + তে বেশ কিছু গুরুতর বাগের জন্য এই দুষ্টু হ্যাকটি কার্যকর হিসাবে প্রয়োগ করা হয়েছিল :)। তবে, ট্যুইস্টের সৌন্দর্য হ'ল আমরা এই বাগটি একবারে নিতে পারি , এটি ফ্রেমওয়ার্কে ঠিক করতে পারি এবং আমাদের ব্যবহারকারীদের এ সম্পর্কে উদ্বিগ্ন হওয়ার দরকার নেই। আপনি কি এমন কোনও সমস্যার সমাধান করতে চান যা এই সমস্যাটিকে সম্বোধন করে এবং পরিত্রাণ পেতে (অবনমিত হয় এবং পরে সরানো হয়) PortableGtkReactor?
গ্লাইফ

1
@ গ্লাইফ আমি twistedmatrix.com/trac/ticket/4744# মন্তব্যগুলিতে সহায়ক পরামর্শ যুক্ত করেছি যদি অন্য কেউ এই ইস্যুটি মোকাবেলা করতে চায় তবে কারণ এগুলির কয়েকটি বিষয় এখনও বিদ্যমান। বিটিডাব্লু, আপনি দুটি ইভেন্ট লুপের মধ্যে কলব্যাকগুলি শিডিয়ুল করে আরও দক্ষতার সাথে সমাধান করতে পারতেন।
schlamar

7

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


5
আমি একটি অ্যাপ্লিকেশানের জন্য কমেলিয়া ব্যবহার করেছি - এটি অত্যন্ত বেদনাদায়ক ছিল। আইএমএইচও আরও রয়েছে পাইথনে সম্মিলনের জন্য আরও ভাল বিকল্প (যার বেশিরভাগ উপরে উল্লিখিত রয়েছে)
বেন ফোর্ড

7

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

অজগর সমাধান না হলেও, আমি দেখেছি যে নোড.জেস দেরীতে অনেক বেশি ট্র্যাকশন লাভ করে। আসলে আমি এটি ছোট প্রকল্পগুলির জন্য সন্ধানের বিষয়টি বিবেচনা করেছি তবে জাভাস্ক্রিপ্ট শুনলেই আমি কেবল কুঁকড়ে যাচ্ছি :)


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

4

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

আমার একমাত্র ছদ্মবেশটি আমার মতো অন্য ফ্রেমওয়ার্কগুলির সাথে যেমন রুবি y আমি উদ্বিগ্ন, এটি স্কেল আপ না? আমি কোনও ক্লায়েন্টকে এমন কাঠামোর প্রতিশ্রুতি দিতে ঘৃণা করব যাতে স্কেলিবিলিটি সমস্যা রয়েছে।


4

Whizzer একটি ক্ষুদ্র অ্যাসিঙ্ক্রোনাস সকেট ফ্রেমওয়ার্ক pyev ব্যবহার করে হয়। এটি খুব দ্রুত, মূলত পাইয়েভের কারণে। এটি কিছুটা সামান্য পরিবর্তনগুলি মোচড় হিসাবে একটি অচেনা ইন্টারফেস সরবরাহ করার চেষ্টা করে।


2

সিঙ্কলেসও চেষ্টা করে দেখুন । এটি কর্টিন-ভিত্তিক (সুতরাং এটি কনক্যুরেন্স, ইভেন্টলেট এবং জেনভেন্টের সমান)। এটি সকেট.সকেট, সকেট.জথোস্টবাইনেম (ইত্যাদি), এসএসএল.এসএসএলসকেট, টাইম.স্লিপ এবং সিলেক্ট সিলেকের জন্য ড্রপ-ইন অ-ব্লকিং প্রতিস্থাপনগুলি প্রয়োগ করে। এটা দ্রুত. এটি স্ট্যাকলেস পাইথন এবং মুক্তি প্রয়োজন। এটিতে সি (পাইরেক্স / সাইথন) এ লিখিত একটি বাধ্যতামূলক পাইথন এক্সটেনশন রয়েছে।


2

আমি সিঙ্কলেস এর মঙ্গলভাব নিশ্চিত । এটি লিব্ব (মুক্তির নতুন, ক্লিনার এবং আরও ভাল পারফরম্যান্স সংস্করণ) ব্যবহার করতে পারে। কিছু সময় আগে এটির যেমন মুক্তির মতো সমর্থন ছিল না তবে এখন উন্নয়ন প্রক্রিয়াটি আরও এগিয়ে চলেছে এবং এটি খুব কার্যকর।



0

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

কেবল কোনও শ্রেণিকে অবজেক্টের পরিবর্তে টাস্ক থেকে উত্তরাধিকার সূত্রে আসুন এবং এটি async হয়, সমস্ত পদ্ধতির কলগুলি প্রক্সি হয়। রিটার্ন মানগুলি (আপনার যদি তাদের প্রয়োজন হয়) হ'ল ফিউচার প্রক্সি।

res = obj.method( args )
# code continues here without waiting for method to finish
do_something_else( )
print "Result = %d" % res # Code will block here, if res not calculated yet

পাই ওয়ার্কস http://bitbucket.org/raindog/pyworks এ পাওয়া যাবে


1
যদিও এটি আকর্ষণীয় এবং কিছু কাজের জন্য উপযুক্ত, তবে নেটওয়ার্কিংয়ের জন্য থ্রেডগুলি ব্যবহার খারাপ করে (বিশেষত জিআইএল-এর কারণে পাইথন-এ) on এবং এটি ঠিক প্রশ্ন ছিল: একটি সন্নিবিষ্ট কাঠামো বা মাল্টিপ্রসেসিং সহ। সুতরাং আপনার উত্তর স্পষ্টভাবে সুযোগের বাইরে ...
schlamar
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.