aboutsummaryrefslogblamecommitdiffstats
path: root/lib/active_job/queue_adapters/inline_adapter.rb
blob: 414a918d2b59d155daa71910f2b8294c5ed25df3 (plain) (tree)
1
2
3
4
5
6
7
8
9




                             
                                                       
           

                                    





                                                           
                                                                                  


               


         
   
module ActiveJob
  module QueueAdapters
    class InlineAdapter
      class << self
        def queue(job, *args)
          job.new.perform *Parameters.deserialize(args)
        end

        def queue_at(job, ts, *args)
          Thread.new do
            begin
              interval = Time.now.to_f - ts
              sleep(interval) if interval > 0
              job.new.perform *Parameters.deserialize(args)
            rescue => ex
              ActiveJob::Base.logger.info "Error performing #{job}: #{ex.message}"
            end
          end
        end
      end
    end
  end
end