title: Sidekiq job not being added to queue after record commits for carrierwave-video
body: <p>I setup <strong>carrierwave_backgrounder</strong>, <strong>carrierwave-video</strong>, and <strong>carrierwave-ffmpegthumbnailer</strong> to encode video files after the initial record is inserted into the database (postgresql). The issue that I am having is, I can only start the encoding process in rails console. For some odd reason, it doesn't begin when I use the form. I have the default configuration setup for sidekiq and carrierwave-backgrounder. I'm also processing each file in mp4 or webm. The record stores into the database with the video column as null. It shows nothing in my server development log about encoding or sidekiq job. I checked the web ui for sidekiq and nothing is there as well. What I've done so far is below. I'm using Rails 5.2, btw. How can I successfully encode videos using sidekiq and carrierwave_background??</p>
  
  <p>carrierwave_backgrounder.rb</p>
  
  <pre><code>CarrierWave::Backgrounder.configure do |c|
    c.backend :sidekiq, queue: :carrierwave
  end
  </code></pre>
  
  <p>sidekiq.rb</p>
  
  <pre><code>require 'sidekiq'
  
  Sidekiq.configure_client do |config|
    config.redis = {:size =&gt; 1}
  end
  
  Sidekiq.configure_server do |config|
  
  end
  </code></pre>
  
  <p>story_video_uploader.rb</p>
  
  <pre><code>class StoryVideoUploader &lt; CarrierWave::Uploader::Base
    include ::CarrierWave::Backgrounder::Delay
    # Include RMagick or MiniMagick support:
    # include CarrierWave::RMagick
    include CarrierWave::MiniMagick
    include CarrierWave::Video
   # include CarrierWave::Video::Thumbnailer
    #include CarrierWave::FFMPEG
  
    # Choose what kind of storage to use for this uploader:
    storage :file
    # storage :fog
  
    # Override the directory where uploaded files will be stored.
    # This is a sensible default for uploaders that are meant to be mounted:
  
  =begin
    version :thumb do
      process thumbnail: [{ format: 'png', quality: 10, size: 200, strip: true, logger: Rails.logger }]
      def full_filename(for_file)
        png_name(for_file, version_name)
      end
    end
  =end
  
    version :mp4 do
      process encode_video: [:mp4, preserve_aspect_ratio: :height,
                             video_codec: 'libx264', # H.264/MPEG-4 AVC video codec
                             constant_rate_factor: '30', # GOP Size
                             frame_rate: '25', # Frame rate
                             audio_codec: 'aac', # AAC audio codec
                             audio_bitrate: '64k', # Audio bitrate
                             audio_sample_rate: '44100' # Audio sampling frequency
                            ]
    end
  
    version :webm do
      process encode_video: [:webm, preserve_aspect_ratio: :height,
                             video_codec: 'libvpx', # H.264/MPEG-4 AVC video codec
                             constant_rate_factor: '30', # GOP Size
                             frame_rate: '25', # Frame rate
                             audio_codec: 'libvorbis', # AAC audio codec
                             audio_bitrate: '64k', # Audio bitrate
                             audio_sample_rate: '44100' # Audio sampling frequency
      ]
    end
  
    def png_name(for_file, version_name)
      %Q{#{version_name}_#{for_file.chomp(File.extname(for_file))}.png}
    end
  
    def store_dir
      "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
    end
  
  end
  </code></pre>
  
  <p>story.rb</p>
  
  <pre><code>class Story &lt; ApplicationRecord
    reverse_geocoded_by :latitude, :longitude, :address =&gt; :location
    include UniqueIdentifierLinksHelper
  
    belongs_to :user, optional: true
  
    mount_uploader :story_video, StoryVideoUploader
    process_in_background :story_video
  end
  </code></pre>
  
  <p>stories_controller.rb</p>
  
  <pre><code>class StoriesController &lt; ApplicationController
    before_action :set_story, only: %i[show edit update destroy like unlike]
  
    before_action :authenticate_user!
    # GET /stories
    # GET /stories.json
    def index
      @stories = current_user.stories.order(created_at: :desc).page(params[:page]).per(20)
    end
  
    # GET /stories/1
    # GET /stories/1.json
    def show
      impressionist(@story)
    end
  
    # GET /stories/new
    def new
      @story = Story.new
    end
  
    # GET /stories/1/edit
    def edit; end
  
    # POST /stories
    # POST /stories.json
    def create
      @story = current_user.stories.build(story_params)
      respond_to do |format|
        if @story.save
  
          format.html {redirect_to @story, notice: 'Your story was created!'}
          #format.json { render :show, status: :created, location: @story }
          #format.js
        else
          format.html {render :new}
          #format.json { render json: @story.errors, status: :unprocessable_entity }
          #format.js
        end
      end
    end
  
    # PATCH/PUT /stories/1
    # PATCH/PUT /stories/1.json
    def update
      respond_to do |format|
        if @story.update(story_params)
          format.json { head :no_content }
          format.js
        else
          format.json { render json: @story.errors, status: :unprocessable_entity }
        end
      end
    end
  
    # DELETE /stories/1
    # DELETE /stories/1.json
    def destroy
      @story.destroy
      respond_to do |format|
        format.js
        format.html { redirect_to stories_url }
        format.json { head :no_content }
      end
    end
  
    def like
      @story.liked_by current_user
      respond_to do |format|
        format.html { redirect_to :back }
        format.js
      end
    end
  
    def unlike
      @story.unliked_by current_user
      respond_to do |format|
        format.html { redirect_to :back }
      end
    end
  
    private
  
    # Use callbacks to share common setup or constraints between actions.
    def set_story
      @story = Story.find(params[:id])
    end
  
    # Never trust parameters from the scary internet, only allow the white list through.
    def story_params
      params.require(:story).permit(:story_video, :story_video_processing)
    end
  end
  </code></pre>