لماذا أحصل على مستوى المكدس عميقًا جدًا أثناء تشغيل وظيفة باستخدام stike-status؟

StackOverflow https://stackoverflow.com/questions/3105384

سؤال

إليك تتبع المكدس الذي يظهر على واجهة Resque-Web: http://gist.github.com/396893
هناك يمكنك التحقق من بعض إصدارات GEM التي كنت أستخدمها.
لقد قمت الآن ببعض الترقيات التي تحاول حل المشكلة ، وهنا إصدارات GEM الحالية:

ريديس (2.0.3)
Redis-Namespace (0.5.0)
Redisk (0.2.1)
Resque (1.9.5)
جدولة resque (1.9.2)
Resque-Status (0.1.4)

لقد كتبت أيضًا عاملًا بسيطًا للغاية لتجاهل أي أخطاء برمجة من جانبي ، ولكن أيضًا دون أي نجاح. رمز عامل الاختبار هو (على الرغم من أن الخلل يحدث مع أي رمز باستخدام resque-status التي جربتها):

class SimpleStatusWorker < Resque::JobWithStatus
   def perform
     60.times do |i|
       sleep 1
       at(i,60,"At #{num} of #{total}")
     end
   end
 end

(يتم تحميل التهيئة المناسبة في تهيئة بيئة القضبان).

هل كانت مفيدة؟

المحلول

لا ، الأمر لا يتعلق بـ IIS. إنه عن فلاد. يعرّف VLAD طريقة "GET" بواسطة eval على Rake_remote_task.rb (السطر ~ 12). هذا يخلق طريقة "الحصول" في سياق الكائن. نظرًا لأن طريقة Redis "GET" لم يتم تعريفها (يطلق عليها Method_missing) ، فإنها تعمل على تشغيل طريقة VLAD. نظرة:

eval "def get n يضع 'yo' n end"

فئة فو ؛ نهاية

foo.new.get

=> يو

غريب ليس؟

نصائح أخرى

ربما شيء مع تكوين IIS؟

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top