أنا جديد في الإضافات. أحاول تكييف إضافة تستغرق حوالي ساعة لتنفيذها. عند النظر إلى /sidekiq، أرى أن المهمة تعمل كل 30 دقيقة. لذا، قبل انتهاء المهمة الأولى، تبدأ نسخة أخرى من نفس المهمة، مما يؤدي إلى إنشاء نتائج مكررة. كيف يمكنني منع ذلك؟
طريقة واحدة بالطبع هي جعل المهمة تعمل خلال الـ 30 دقيقة المسموح بها، لكن هناك قيود أخرى، وأفضل أن أتركها تعمل طالما تريد.
لقد جربت هذا، لكنه لا يبدو أنه يمنع تشغيل نسخة ثانية من المهمة:
إذا كان القفل (mutex) داخل كتلة execute، فهذا يعني ببساطة أنه سيتوقف هناك في انتظاره، مما يعني أنك ستشاهد مهمتين تعملان: واحدة تعمل فعليًا والأخرى في انتظار القفل.
ربما ترغب في التحقق منه والعودة مبكرًا إذا كانت هناك مثيلة أخرى قيد التشغيل؟ من الصعب التخمين مع معرفة القليل جدًا عن حالة الاستخدام المحددة.