ゆっくり動くと速く動ける / If you move slowly, you can move more fast
Ruby on Railsの抽象インタフェース(ActiveRecord/ActiveJob)を使うことで、アプリケーションのアーキテクチャ決定を遅らせる事ができる。アーキテクチャの決定を遅らせ、アプリケーションの構成をなるべく長い期間シンプルに保つと、開発速度を上げることができます。
Rails Developers Meetup 2018 Day 4 Nouvelle Vague https://techplay.jp/event/702297 にて発表
&block return unless SuckerPunch::RUNNING.true? queue = SuckerPunch::Queue.find_or_create to_s, num_workers, num_jobs_max queue.post { __run_perform(&block) } end def __run_perform SuckerPunch::Counter::Busy.new(to_s).increment result = yield SuckerPunch::Counter::Processed.new(to_s).increment result rescue StandardError => ex SuckerPunch::Counter::Failed.new(to_s).increment SuckerPunch.exception_handler.call ex, self, args ensure SuckerPunch::Counter::Busy.new(to_s).decrement end end end end module ActiveJob module QueueAdapters class SuckerPunchAdapter def enqueue job job.queue_name = job.class.to_s job.class.perform_async { Base.execute job.serialize } end end end end