perform trim(nil, {}) # パイプラインの先頭は trimの処理 end # ヘルパメソッド self.define_sidekiq_method については gihyo.jp の記事参照 # パイプラインの定義。 trim, effect, add_watermark, crossfadeの順で処理する define_sidekiq_method(method: 'trim', worker_class: TrimWorker, on_success_method: 'effect', on_success_options: proc { |params| { outputs: params.map { |p| p.output.to_h } } }) define_sidekiq_method(method: 'effect', worker_class: EffectWorker, on_success_method: 'add_watermark', on_success_options: proc { |params| { outputs: params.map { |p| p.output.to_h } } }) define_sidekiq_method(method: 'add_watermark', worker_class: AddWatermarkWorker, on_success_method: 'crossfade', on_success_options: proc { |params| { outputs: params.map { |p| p.output.to_h } } }) define_sidekiq_method(method: 'crossfade', worker_class: CrossfadeWorker, on_success_method: 'on_success', on_success_options: proc { |_| {} }) def on_complete(status, options) # パイプライン完了後の処理として成果物として得られた動画ファイルの保存・返却を行う(省略) end end パイプライン本体の定義 各ステップの処理は 通常のSidekiq Workerとして実装 パイプライン全体も ひとつのSidekiq Worker 14