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: f0509c58df91713253273b49ffe9bcb247877399
4
- data.tar.gz: 7b74c00c0400fb5a2d29a2dd41ed35a5ec22e5a1
3
+ metadata.gz: 9ffc8c7bca7bcfddac8f0b86e428920ad3c12554
4
+ data.tar.gz: e68d47728ebcedda262ed1c7e3843162a64feb05
5
5
  SHA512:
6
- metadata.gz: 3195a78dc76f9eacb7334f0f4fe2bb00d378e5179255a145ed0ef6956db34ecc50aed2dc54ca5f00d2497d2440d591f00ba559d617d4b538f253fa1d2c370e7b
7
- data.tar.gz: a1bd2be7c63829e0e7f0d0d16ffc1be37fa9309a3abddc05fa8f7ab8dd6767d18e5d0868583aa1a1294b9cb935e729a1d78ea46f7a29837dd22a73df373fadab
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
- loop do
38
- sleep(@update_period)
39
+ begin
40
+ loop do
41
+ sleep(@update_period)
39
42
 
40
- act
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] || 0 }
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)
@@ -1,3 +1,3 @@
1
1
  module Procrastinator
2
- VERSION = '0.4.1'
2
+ VERSION = '0.5.0'
3
3
  end
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.1
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-29 00:00:00.000000000 Z
11
+ date: 2016-12-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler