Sha256: 045fb5f94ee95c8ab22486111ffbb22eb166fb9a4161295f1c65f568f4aaa25e

Contents?: true

Size: 723 Bytes

Versions: 48

Compression:

Stored size: 723 Bytes

Contents

module Picky

  class Scheduler

    attr_reader :parallel

    def initialize options = {}
      @parallel = options[:parallel]
      @factor   = options[:factor] || 2

      configure
    end

    def configure
      if fork?
        def schedule &block
          scheduler.schedule &block
        end

        def finish
          scheduler.join
        end

        def scheduler
          @scheduler ||= Procrastinate::Scheduler.start Procrastinate::SpawnStrategy::Default.new(@factor)
        end
      else
        def schedule
          yield
        end

        def finish
          # Don't do anything.
        end
      end
    end

    def fork?
      parallel && Process.respond_to?(:fork)
    end

  end

end

Version data entries

48 entries across 48 versions & 1 rubygems

Version Path
picky-4.8.1 lib/picky/scheduler.rb
picky-4.8.0 lib/picky/scheduler.rb
picky-4.7.0 lib/picky/scheduler.rb
picky-4.6.6 lib/picky/scheduler.rb
picky-4.6.5 lib/picky/scheduler.rb
picky-4.6.4 lib/picky/scheduler.rb
picky-4.6.3 lib/picky/scheduler.rb
picky-4.6.2 lib/picky/scheduler.rb
picky-4.6.1 lib/picky/scheduler.rb
picky-4.6.0 lib/picky/scheduler.rb
picky-4.5.12 lib/picky/scheduler.rb
picky-4.5.11 lib/picky/scheduler.rb
picky-4.5.10 lib/picky/scheduler.rb
picky-4.5.9 lib/picky/scheduler.rb
picky-4.5.8 lib/picky/scheduler.rb
picky-4.5.7 lib/picky/scheduler.rb
picky-4.5.6 lib/picky/scheduler.rb
picky-4.5.5 lib/picky/scheduler.rb
picky-4.5.4 lib/picky/scheduler.rb
picky-4.5.3 lib/picky/scheduler.rb