updater 0.2.0 → 0.2.1
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.
- data/VERSION +1 -1
- data/bin/updater +1 -2
- data/lib/updater/update.rb +3 -0
- data/lib/updater/worker.rb +7 -4
- data/spec/lock_spec.rb +9 -1
- data/spec/worker_spec.rb +5 -1
- metadata +2 -2
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.2.
|
1
|
+
0.2.1
|
data/bin/updater
CHANGED
data/lib/updater/update.rb
CHANGED
@@ -208,6 +208,9 @@ module Updater
|
|
208
208
|
#Gets a single gob form the queue, locks and runs it.
|
209
209
|
def work_off(worker)
|
210
210
|
updates = worker_set
|
211
|
+
if updates.empty?
|
212
|
+
return queue_time
|
213
|
+
end
|
211
214
|
|
212
215
|
#concept copied form delayed_job. If there are a number of
|
213
216
|
#different processes working on the queue, the niave approch
|
data/lib/updater/worker.rb
CHANGED
@@ -24,8 +24,9 @@ module Updater
|
|
24
24
|
delay = Update.work_off(self)
|
25
25
|
break if $exit
|
26
26
|
sleep delay
|
27
|
-
break if exit
|
27
|
+
break if $exit
|
28
28
|
end
|
29
|
+
clear_locks
|
29
30
|
end
|
30
31
|
|
31
32
|
trap('TERM') { terminate_with t }
|
@@ -44,6 +45,10 @@ module Updater
|
|
44
45
|
logger.info text if logger
|
45
46
|
end
|
46
47
|
|
48
|
+
def clear_locks
|
49
|
+
Update.all(:lock_name=>@name).update(:lock_name=>nil)
|
50
|
+
end
|
51
|
+
|
47
52
|
private
|
48
53
|
|
49
54
|
def terminate_with(t)
|
@@ -51,11 +56,9 @@ module Updater
|
|
51
56
|
$exit = true
|
52
57
|
t.run
|
53
58
|
say "Forcing Shutdown" unless status = t.join(15) #Nasty inline assignment
|
54
|
-
|
59
|
+
clear_locks
|
55
60
|
exit status ? 0 : 1
|
56
61
|
end
|
57
|
-
|
58
|
-
|
59
62
|
end
|
60
63
|
|
61
64
|
end
|
data/spec/lock_spec.rb
CHANGED
@@ -68,6 +68,14 @@ describe "Update Locking:" do
|
|
68
68
|
|
69
69
|
end
|
70
70
|
|
71
|
-
it "#clear_locks should
|
71
|
+
it "#clear_locks should clear all locks from a worker" do
|
72
|
+
@v = Update.immidiate(Foo,:bar,[:arg1,:arg2])
|
73
|
+
@u.lock(@w)
|
74
|
+
@v.lock(@w)
|
75
|
+
@u.locked?.should be_true
|
76
|
+
@w.clear_locks
|
77
|
+
@u.reload.locked?.should be_false
|
78
|
+
@v.reload.locked?.should be_false
|
79
|
+
end
|
72
80
|
|
73
81
|
end
|
data/spec/worker_spec.rb
CHANGED
@@ -60,7 +60,11 @@ describe "working off jobs:" do
|
|
60
60
|
Update.work_off(Worker.new(:name=>"first", :quiet=>true)).should == 0
|
61
61
|
end
|
62
62
|
|
63
|
-
it "should return the number of seconds till the next job if there are no jobs to be run"
|
63
|
+
it "should return the number of seconds till the next job if there are no jobs to be run" do
|
64
|
+
Timecop.freeze(Time.now)
|
65
|
+
u1 = Update.at(Time.now + 30, Foo,:bar,[:arg1])
|
66
|
+
Update.work_off(Worker.new(:name=>"first", :quiet=>true)).should == 30
|
67
|
+
end
|
64
68
|
|
65
69
|
it "should return nil if the job queue is empty" do
|
66
70
|
u1 = Update.immidiate(Foo,:bar,[:arg1])
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: updater
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- John F. Miller
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-10-
|
12
|
+
date: 2009-10-21 00:00:00 -07:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|