HTTP কলের তৈরি করার সময় রুবিতে প্রায়শই সিস্টেম এক্সিকিউট

আমি একটি রুবি নেভিগেশন পাগল ওয়েবসাইট যে একটি HTTP বহিরাগত ওয়েব পরিষেবা কল তোলে।

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

রুবি সংস্করণ 1.8.6 এবং পাগল সংস্করণ 1.2.6।

অন্য কারো কি এই সমস্যা আছে?

এটি ত্রুটি এবং স্ট্যাকট্রাস।

একটি সিস্টেমএক্সিট ঘটেছে   /usr/local/lib/ruby/gems/1.8/gems/rails-1.2.6/lib/fcgi_handler.rb:116:in   প্রস্থান '   /usr/local/lib/ruby/gems/1.8/gems/rails-1.2.6/lib/fcgi_handler.rb:116:in   exit_now_handler '   /usr/local/lib/ruby/gems/1.8/gems/activesupport-1.4.4/lib/active_support/inflector.rb:250:in   to_proc '/usr/local/lib/ruby/1.8/net/protocol.rb:133:n কল'   /usr/local/lib/ruby/1.8/net/protocol.rb:133:য় sysread '   /usr/local/lib/ruby/1.8/net/protocol.rb:133:ইন rbuf_fill '   /usr/local/lib/ruby/1.8/timeout.rb:56:আমার সময়সীমা '   /usr/local/lib/ruby/1.8/timeout.rb:76:আম সময়সীমা '   /usr/local/lib/ruby/1.8/net/protocol.rb:132:ইন rbuf_fill '   /usr/local/lib/ruby/1.8/net/protocol.rb:116:যখন পড়তে হয় '   /usr/local/lib/ruby/1.8/net/protocol.rb:126:ইন রেডলাইন '   /usr/local/lib/ruby/1.8/net/http.rb:2017: read read_status_line '   /usr/local/lib/ruby/1.8/net/http.rb:2006:জুড়ে read_new '   /usr/local/lib/ruby/1.8/net/http.rb:1047:অন অনুরোধ '   /usr/local/lib/ruby/1.8/net/http.rb:945:নর অনুরোধ_get '   /usr/local/lib/ruby/1.8/net/http.rb:380:ইন get_response '   /usr/local/lib/ruby/1.8/net/http.rb পাঠান 43: শুরু করুন '   /usr/local/lib/ruby/1.8/net/http.rb:379:ইন get_response '

0
যোগ সম্পাদিত
মতামত: 1

7 উত্তর

আপনি প্রায়ই এটি ক্ষেত্রে পাবেন, আপনি একটি বিদ্যমান পণ্য অনুরূপ যে বালুচর অংশ বন্ধ থেকে কিছু নির্মাণ করার চেষ্টা করার সময়, প্রায় সবসময় অংশ বিদ্যমান পণ্য তুলনায় আরো খরচ হবে। কারণ তারা ব্যাপকভাবে তাদের পণ্য উত্পাদন করতে পারেন, বাল্ক মধ্যে অংশ ক্রয় ইত্যাদি খরচ কমে।

'সিরিয়াল-ওভার-ব্লুটুথ বোর্ড' এ ঘনিষ্ঠভাবে নজর রাখুন, তাদের কেউ কেউ আসলে ভিন্ন প্রোফাইল সমর্থন করে। আপনি যা খুঁজছেন তা হল একটি মডিউল যা ব্লুটুথ এইচআইডি প্রোফাইল (হিউম্যান ইন্টারফেস ডিভাইস, উর মাউস, কীবোর্ড, জয়স্টিক, উইই রিমোট ইত্যাদি) সমর্থন করে।

এই পূর্ববর্তী প্রশ্নটি দেখুন , এটি কয়েকটি ব্লুটুথ মডিউল তালিকা করে, যা আপনি এককভাবে কিনতে পারেন মোটামুটি যুক্তিসঙ্গত মূল্যের পরিমাণ, কিছু বা তাদের সবাইকে HID সমর্থন করা উচিত।

11
যোগ
বিশেষ করে কোনটি খুঁজে পেতে: তাদের প্রতিটিতে ক্লিক করুন, পৃষ্ঠাটি পড়ুন এবং দেখুন যে এটিতে যে কোনও জায়গায় "লুকিয়ে রাখুন" বলে। তারপর যদি আপনি জানতে চান যে কতটা কাজ হবে: মডিউলের জন্য ডেটশীটটি পড়ুন এবং দেখুন তা শুরু করতে আপনাকে কতটা করতে হবে, ইভেন্টগুলি পাঠাতে হবে ইত্যাদি। অনেকগুলি মডিউল যা আপনি UART এর মাধ্যমে যোগাযোগ করতে পারেন, যা সাধারণত একটি মাইক্রোকন্ট্রোলার থেকে বেশ সহজ, "AT" কমান্ডগুলি দিয়ে, যেমনগুলি মডেমগুলি পুরনো দিনের কাজ করে। আবার ডেটাশীট উপলব্ধ কমান্ডের তালিকা করা উচিত।
যোগ লেখক Marcel, উৎস
ঠিক আছে. কিন্তু যারা বিশেষ করে, এবং কত কাজ এটি সমর্থন করতে তাদের পেতে জড়িত?
যোগ লেখক Lehane, উৎস
তাই এই মত? sparkfun.com/products/10253
যোগ লেখক Lehane, উৎস

এটা সম্ভবত আপনি খুঁজছেন সমাধান হয় না, কিন্তু আমি এটি প্রশ্ন প্রাসঙ্গিক ছিল চিন্তা:

https://serverfault.com/questions/ 43615/সেটআপ-এ-লিনাক্স-কম্পিউটার-টু-আইন-হিসাবে একটি ব্লুটুথ-কীবোর্ড-মাউস

2
যোগ

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

একটি মডিউল কেনার সমস্যা (যার অধিকাংশই বাক্সের বাইরে SPP/DUN প্রোফাইলগুলি করে এবং একটি সিরিয়াল পোর্টের মতো কাজ করে) এটি হল যে আপনি অন্য কিছু করার জন্য সেই চিপগুলিকে পুনর্বিন্যস্ত করার জন্য আপনার SDK গুলিতে হাত পেতে পারেন না। আপনি একটি HCI ("হোস্ট কন্ট্রোলার ইন্টারফেস") ফার্মওয়্যার সঙ্গে একটি মডিউল প্রয়োজন। এটি একটি ভাল-নির্দিষ্ট সিরিয়াল ইন্টারফেসের মাধ্যমে আপনার মাইক্রোকন্ট্রোলারের ব্লুটুথ স্ট্যাককে প্রকাশ করবে। আপনি ব্লুটুথ সম্পর্কে ভাল বোঝার প্রয়োজন হবে কারণ মডিউলটি কিছু করার জন্য HCI এর মাধ্যমে প্রাপ্ত ইভেন্টগুলির ব্যাখ্যা করা এবং রাজ্য মেশিনকে HCI- এর মাধ্যমে পরবর্তী পদক্ষেপের মাধ্যমে এগিয়ে নিয়ে যাওয়ার জন্য ব্যাখ্যা করা প্রয়োজন। ভাল খবর হল যে তাকানোর জন্য অনেকগুলি উদাহরণ রয়েছে কারণ হোস্ট-এর পাশে ব্লুটুথ ইন্টারফেসগুলি অপারেটিং সিস্টেমের কাছে এটি প্রকাশ করে।

একটি আদর্শ মডিউল (যদি এমন একটি জিনিস থাকে) একটি ব্লুটুথ 4.1 মডেলের BLE সমর্থন যা মাইক্রোকন্ট্রোলারে HOGP (GATT প্রোটোকলের উপর HID) প্রকাশ করে। HOGP আপনাকে USB HID প্রতিবেদনের বিবরণী ব্যবহার করতে দেয় এবং "বেতার USB" হওয়ার খুব কাছাকাছি আসে। দুর্ভাগ্যবশত, বিটি 4.1/এইচওজিপি সমর্থন খুব সাম্প্রতিক অ্যান্ড্রয়েড এবং উইন্ডোজ 8 পর্যন্ত নির্মিত নয়। একটি মডিউল যা মাইক্রোকন্ট্রোলারের সাথে কথা বলে এবং এটি রিপোর্টের বিবরণী সেট করে দেয় এবং তারপর রিপোর্টগুলি প্রেরণ করা একটি খুব সহজ জিনিস।

2
যোগ

রুবি সঙ্গে fcgi ব্যবহার করে খুব বাগি হিসাবে পরিচিত হয়

বাস্তবিকই সবাই এই কারণে মোঙ্গল এ সরানো হয়েছে এবং আমি আপনাকে একই কাজ করার সুপারিশ করছি।

0
যোগ

আমি যাত্রী এও নজর রাখব। এ্যাপাচি / এনজিনক্স + মংগলের ঐতিহ্যবাহী সমাধানের চেয়ে এটি পেতে অনেক সহজ।

0
যোগ

আমি FCGI ব্যবহার করা থেকে এটি একটু সময় হয়েছে কিন্তু থ্রেড খুব দীর্ঘ গ্রহণ ছিল যদি আমি একটি FCGI প্রক্রিয়া একটি SystemExit ছুঁড়ে দিতে পারে মনে হয়। এই ওয়েব পরিষেবাটি সাড়া দিতে পারে না বা এমনকি একটি ধীরগামী DNS ক্যোয়ারীও হতে পারে। কিছু গুগল ফলাফল পাইথন এবং FCGI সঙ্গে একটি অনুরূপ ত্রুটি দেখায় যাতে mongrel চলন্ত একটি ভাল ধারণা হতে হবে। এই পোস্টটি হল আমার রেফারেন্স আমি মোঙ্গল সেট আপ করতে ব্যবহৃত এবং আমি এখনও এটি ফিরে পড়ুন।

0
যোগ

আমি এই সব সময় Apache1 / fastcgi এ পেতে ব্যবহৃত। আমি রুবি সম্পন্ন করা হয় আগে এটি fastcgi দ্বারা ঝুলন্ত দ্বারা সৃষ্ট মনে হয়।

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

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

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

আপনার অ্যাপ্লিকেশনটির প্রকৃতির উপর ভিত্তি করে আরেকটি বিকল্প, ক্রোন মাধ্যমে প্রতি N মিনিটটি চুরি করে, স্থানীয়ভাবে তথ্য ক্যাশে এবং ক্যাশে আপনার লাইভ পৃষ্ঠাটি পড়ে।

0
যোগ