كيفية منح جميع الشارات قسراً من سطر الأوامر؟

تُمنح الشارات مرة واحدة يوميًا.
هل توجد طريقة لجدولة أو فرض عملية المنح “في الوقت الحالي” من سطر الأوامر؟

أسهل طريقة هي زيارة /sidekiq/scheduler والبحث عن أي وظائف تحتوي كلمة “grant” في الاسم. ربما ترغب في Jobs::BadgeGrant، لكن بعض الشارات لها مهامها الخاصة.

لقد راجعت جميع المهام المجدولة في Sidekiq حتى 24 ساعة من الآن، ولم أجد أي منها يحتوي على رمز grant.

أوه… غريب. إذن لا تظهر لك سطر مثل هذا؟

هل هذا خادم تطوير أم إنتاج؟

إنه يعمل في بيئة الإنتاج على forum.kozovod.com.
صحيح، لا توجد إدخالات كما هو موضح في لقطة الشاشة الخاصة بك.

لاحظت للتو أنني لم أحصل على أي شارات لفترة طويلة. سأقوم الآن بإعادة بناء الحاوية وسأتحقق مما إذا كانت المهمة ستُجدول بعد إعادة التشغيل.

أيضًا، لاحظت أن إحدى شارات custom-sql الخاصة بي تحتوي على خطأ - هل يمكن أن يتسبب ذلك في توقف جميع الشارات الأخرى عن العمل؟

نظريًا، لا.

أعتقد أن الأرجح هو أن تحديث مدير Docker قد ساء، مما أدى إلى فشل تحميل بعض وظائف Sidekiq. على أمل أن يعمل الأمر مرة أخرى بعد إعادة البناء.

حسنًا، سارت عملية إعادة البناء على ما يرام.

ومع ذلك، بعد بضع دقائق من اكتمالها، لا يزال لا يمكنني العثور على أي رمز grant في جميع المهام المجدولة التي تزيد عن 125 مهمة. هل هذا يعني أن هناك خطأ ما في إعداداتي؟

نعم، على الأرجح. هل لديك أي أخطاء في /logs؟ هل توجد أي إضافات غير عادية؟

حسناً، لا يوجد شيء حرج في آخر 20 دقيقة تقريباً:

هل يمكنك رؤية أي شيء مشبوه قد يعطل تنفيذ أو جدولة الشارات؟

لا يمكن رؤية أي شيء واضح. إذا ذهبت إلى وحدة التحكم وكتبت Jobs::BadgeGrant، فماذا يحدث؟ يجب أن يبدو الأمر هكذا:

[1] pry(main)> Jobs::BadgeGrant
=> Jobs::BadgeGrant

حسنًا، ها هو:

بعد ذلك، لم تظهر أخطاء جديدة في /logs.

كما لم تظهر إدخالات جديدة تحتوي على رمز grant في /sidekiq/scheduled

هل لديك أي إضافات قد تتسبب في تداخل؟

إليك الإضافات المفعّلة - أحاول استخدام الإضافات الشائعة والمدعومة فقط:

          - git clone https://github.com/discourse/docker_manager.git
          - git clone https://github.com/discourse/discourse-data-explorer.git
          - git clone https://github.com/discourse/discourse-staff-notes.git
          - git clone https://github.com/joebuhlig/discourse-feature-voting.git
          - git clone https://github.com/discourse/discourse-checklist.git
          - git clone https://github.com/discourse/discourse-cakeday.git
          - git clone https://github.com/discourse/discourse-saved-searches.git
          - git clone https://github.com/discourse/discourse-canned-replies.git
          - git clone https://github.com/discourse/discourse-assign.git
          - git clone https://github.com/discourse/discourse-bbcode.git
          - git clone https://github.com/angusmcleod/discourse-locations.git
          - git clone https://github.com/discourse/discourse-adplugin.git
          - git clone https://github.com/angusmcleod/discourse-custom-wizard.git

فقط للتأكد - هل تبحث في “المجدول” أم في “المجدول”؟ يجب أن تكون وظائف الشارة تحت المجدول.

(ملاحظة جانبية: واو، هذا التسمية محيرة حقًا!)

شكرًا لك.
تحت قسم المجدول، يمكنني الآن رؤية العناصر التالية:

  • Jobs::GrantNewUserOfTheMonthBadges
  • Jobs::GrantAnniversaryBadges
  • Jobs::BadgeGrant

تظهر جميع وظائف المجدول تحت قسم “الوظائف المتكررة”.

الآن، هل من الآمن بالنسبة لي النقر على زر “التشغيل” ومشاهدة ما يحدث؟

أهلاً، جيد - هذا يجعل الحل أسهل بكثير!

نعم، زر التشغيل آمن :slight_smile:

شكرًا لك، يعمل الآن.

في المرة السابقة استغرق الأمر 10 آلاف ثانية، لذا سأتحقق غدًا في الصباح.

هل توجد طريقة لمعالجة شارة معينة؟ ربما عبر سطر الأوامر؟

10 آلاف ثانية كثيرة جدًا! في ميتا، يستغرق الأمر 500 ثانية. ربما أحد استعلامات الشارات المخصصة لديك ليس فعالًا جدًا؟ (لهذا السبب قمنا بتعطيل ميزة SQL المخصصة افتراضيًا)

شكرًا لك، قمت بمراجعة الاستعلامات بسرعة وأصلحت واحدة منها قليلًا، وأصبح الوقت المستغرق الآن حوالي 1000 ثانية فقط. كما قمت بنشر سؤالي حول تحسين SQL في موضوع منفصل.

بالعودة إلى الشارات - لقد عملت الآن وتم منح جميع الشارات. شكرًا لك على مساعدتك وردودك السريعة.