procrastinator 0.4.1 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 9ffc8c7bca7bcfddac8f0b86e428920ad3c12554
         | 
| 4 | 
            +
              data.tar.gz: e68d47728ebcedda262ed1c7e3843162a64feb05
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: c74017a1c0d6dab41e5fbd7f7ef8c20fe61b8dc284b1e1ef72a856fed0123f450bca2144d5f8bdeff33b6de60f3b0c8acae677fb43f28236358244dc704bc3f0
         | 
| 7 | 
            +
              data.tar.gz: 1e43eb8665474cfd59c29a12721f25b6ebe4134ead5fa89114d9631cabe227ed6f37a4e318ab6004a0493b615ed9407f402778e619eebc954e80e9bf4b6e9756
         | 
| @@ -30,8 +30,7 @@ module Procrastinator | |
| 30 30 | 
             
                     if @test_mode
         | 
| 31 31 | 
             
                        @queue_definitions.each do |name, props|
         | 
| 32 32 | 
             
                           @queue_workers << QueueWorker.new(props.merge(name:      name,
         | 
| 33 | 
            -
                                                                         persister: @persister | 
| 34 | 
            -
                                                                         log_dir:   @log_dir))
         | 
| 33 | 
            +
                                                                         persister: @persister))
         | 
| 35 34 | 
             
                        end
         | 
| 36 35 | 
             
                     else
         | 
| 37 36 | 
             
                        @queue_definitions.each do |name, props|
         | 
| @@ -41,8 +40,6 @@ module Procrastinator | |
| 41 40 | 
             
                                                                   log_dir:   @log_dir,
         | 
| 42 41 | 
             
                                                                   log_level: @log_level))
         | 
| 43 42 |  | 
| 44 | 
            -
                              worker.start_log
         | 
| 45 | 
            -
             | 
| 46 43 | 
             
                              Process.setproctitle("#{@process_prefix ? "#{@process_prefix}-" : ''}#{worker.long_name}") # tODO: add an app name prefix
         | 
| 47 44 |  | 
| 48 45 | 
             
                              monitor_parent(worker)
         | 
| @@ -31,20 +31,27 @@ module Procrastinator | |
| 31 31 | 
             
                     @persister     = persister
         | 
| 32 32 | 
             
                     @log_dir       = log_dir
         | 
| 33 33 | 
             
                     @log_level     = log_level
         | 
| 34 | 
            +
             | 
| 35 | 
            +
                     start_log
         | 
| 34 36 | 
             
                  end
         | 
| 35 37 |  | 
| 36 38 | 
             
                  def work
         | 
| 37 | 
            -
                      | 
| 38 | 
            -
                         | 
| 39 | 
            +
                     begin
         | 
| 40 | 
            +
                        loop do
         | 
| 41 | 
            +
                           sleep(@update_period)
         | 
| 39 42 |  | 
| 40 | 
            -
             | 
| 43 | 
            +
                           act
         | 
| 44 | 
            +
                        end
         | 
| 45 | 
            +
                     rescue StandardError => e
         | 
| 46 | 
            +
                        @logger.fatal(e)
         | 
| 47 | 
            +
                           # raise e
         | 
| 41 48 | 
             
                     end
         | 
| 42 49 | 
             
                  end
         | 
| 43 50 |  | 
| 44 51 | 
             
                  def act
         | 
| 45 | 
            -
                     # shuffling and re-sorting to avoid worst case O(n^2) on quicksort
         | 
| 52 | 
            +
                     # shuffling and re-sorting to avoid worst case O(n^2) on quicksort (which is default ruby sort)
         | 
| 46 53 | 
             
                     # when receiving already sorted data. Ideally, we'd use a better algo, but this will do for now
         | 
| 47 | 
            -
                     tasks = @persister.read_tasks(@name).shuffle.sort_by { |t| t[:run_at]  | 
| 54 | 
            +
                     tasks = @persister.read_tasks(@name).reject { |t| t[:run_at].nil? }.shuffle.sort_by { |t| t[:run_at] }
         | 
| 48 55 |  | 
| 49 56 | 
             
                     tasks.first(@max_tasks).each do |task_data|
         | 
| 50 57 | 
             
                        if Time.now.to_i >= task_data[:run_at].to_i
         | 
| @@ -16,7 +16,7 @@ module Procrastinator | |
| 16 16 | 
             
                                 task:,
         | 
| 17 17 | 
             
                                 logger: Logger.new(StringIO.new))
         | 
| 18 18 | 
             
                     @id             = id
         | 
| 19 | 
            -
                     @run_at         = run_at.to_i
         | 
| 19 | 
            +
                     @run_at         = run_at.nil? ? nil : run_at.to_i
         | 
| 20 20 | 
             
                     @initial_run_at = initial_run_at.to_i
         | 
| 21 21 | 
             
                     @expire_at      = expire_at.nil? ? nil : expire_at.to_i
         | 
| 22 22 | 
             
                     @task           = YAML.load(task)
         | 
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: procrastinator
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0. | 
| 4 | 
            +
              version: 0.5.0
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Robin Miller
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: exe
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2016- | 
| 11 | 
            +
            date: 2016-12-01 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: bundler
         |