procrastinator 0.4.1 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
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