এখানে Honeybadger-এ, আমরা Sidekiq অনেক বেশি ব্যবহার করি এবং এটা দারুণ। কিন্তু একটা সমস্যা আছে যার মধ্যে আমি প্রায়ই পড়েছি।
...আপনি দেখেন, যখন আমি বিকাশে থাকি তখন আমি সাধারণত Sidekiq চালাই না। কিন্তু ম্যানুয়াল পরীক্ষার সময়, আমি অনেক কাজকে সারিবদ্ধ করে রাখি। তাই পরের বার আমি করব Sidekiq চালান এটি সেই সমস্ত কাজগুলি প্রক্রিয়া করার চেষ্টা করে। ভালো না।
কোড স্নিপেটগুলি খুঁজে পাওয়া সহজ যা একটি Sidekiq সারি থেকে কাজগুলি মুছে দেবে৷ কিন্তু আমাদের অনেক আছে সারি আমি তাদের সবার থেকে চাকরি ক্লিয়ার করতে চাই। একটু খনন করার পরে, আমি একটি উত্তর নিয়ে এসেছি যা ভাল কাজ বলে মনে হচ্ছে। দেখো!
# I originally had a more verbose piece of code here but mperham, Sidekiq's creator, set me straight :)
Sidekiq::Queue.all.each(&:clear)
এটি সম্পর্কে আরও সরাসরি উপায় আছে, কিন্তু এটি শুধুমাত্র Sidekiq-এর পাবলিক API-তে সংজ্ঞায়িত পদ্ধতি ব্যবহার করে, তাই আশা করি অভ্যন্তরীণ পরিবর্তন হলেও এটি কাজ করতে থাকবে।
এখন আরো ইমোজি সহ!
আপনি যদি সাইডকিক সোর্সটি মনোযোগ সহকারে পড়েন, তাহলে আপনি লক্ষ্য করতে পারেন যে আপনি স্পষ্ট পদ্ধতি চালু করতে 💣 ইমোজি ব্যবহার করতে পারেন। কোন রসিকতা নেই:
# https://github.com/mperham/sidekiq/blob/master/lib/sidekiq/api.rb#L255
alias_method :💣, :clear
তাই আমরা আমাদের "ক্লিয়ার অল কিউ" কোডটি এভাবে আবার লিখতে পারি:
Sidekiq::Stats.new.queues.each { |k, v| Sidekiq::Queue.new(k).💣 }
এবং যেহেতু ইমোজিগুলি খুব দুর্দান্ত, তাই আমরা আমাদের নিজস্ব 💀 পদ্ধতি তৈরি করতে পারি যাতে ব্যাপকভাবে মুছে ফেলা যায়৷
def 💀
Sidekiq::Stats.new.queues.each { |queue_name, _| Sidekiq::Queue.new(queue_name).💣 }
end