تحديد معرف الوظيفة من داخل كتلة التعليمات البرمجية لوظيفة كرون في جدولة روفوس (القضبان 3.2)

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

  •  13-12-2019
  •  | 
  •  

سؤال

عند إنشاء وظيفة كرون من خلال جدولة روفوس ، هل هناك طريقة ما ضمن كتلة التعليمات البرمجية لوظيفة كرون لتحديد معرف الوظيفة الخاص بـ كرون الوظيفة نفسها?

ما أريد القيام به هو شيء من هذا القبيل:

scheduler.cron '0 0 0 * * * Etc/GMT+0' do
  # Nix existing jobs.
  scheduler.cron_jobs.values.map { |j| if j.job_id != self.job_id then j.unschedule end }     
  ...
end

المشكلة هي self.job_id.أي اقتراحات حول كيفية استرداد معرف الوظيفة الحالي للكرون الذي يتم تشغيله حاليا?

أعلم أن هناك شيئا مثل "الخيوط المشغلة" ، والتي عادت وظائف قيد التشغيل حاليا.لكني أريد شيئا أكثر تحديدا:ال معرف الوظيفة من كتلة التعليمات البرمجية أنا حاليا في الداخل.

هل هذا ممكن?

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

المحلول

تمكنت من حل هذه المشكلة من خلال توفير المجدول.استدعاء طريقة كرون مع المعلمة الاختيارية التي حددت صراحة معرف الوظيفة الجديدة:

scheduler.cron '0 0 0 * * * Etc/GMT+0', {:job_id => explicit_job_id} do
  # Nix existing jobs.
  scheduler.cron_jobs.values.map { |j| if j.job_id != self.job_id then j.unschedule end }     
  ...
end

أين explicit_job_id هو بعض المتغيرات المحددة قبل المجدول.يتم استدعاء كرون.

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