rplex 0.0.2 → 0.0.3

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/History.txt CHANGED
@@ -1,3 +1,5 @@
1
+ === 0.0.3 / 2012-02-24
2
+ * Added reset queue functionality
1
3
  === 0.0.2 / 2012-01-04
2
4
  * Added backlog delivering queue sizes
3
5
  === 0.0.1 / 2011-12-11
data/README.txt CHANGED
@@ -1,6 +1,6 @@
1
1
  = rplex
2
2
 
3
- http://c11865-prj.zuehlke.com
3
+ https://github.com/damphyr/rplex
4
4
 
5
5
  == DESCRIPTION:
6
6
 
data/lib/rplex/client.rb CHANGED
@@ -30,6 +30,17 @@ module Rplex
30
30
  raise ClientError, $!.message
31
31
  end
32
32
 
33
+ def reset workers
34
+ if workers && !workers.empty?
35
+ response=RestClient.post(@service, {"workers"=>workers}, :content_type => :json, :accept => :json)
36
+ return JSON.parse(response)
37
+ else
38
+ return []
39
+ end
40
+ rescue
41
+ raise ClientError, $!.message
42
+ end
43
+
33
44
  def backlog
34
45
  response=RestClient.get(@service,:accept => :json)
35
46
  unless response.empty?
data/lib/rplex/jobs.rb CHANGED
@@ -48,5 +48,13 @@ module Rplex
48
48
  rescue
49
49
  false
50
50
  end
51
+ #All worker queue names
52
+ def workers
53
+ @queues.keys
54
+ end
55
+ #Empties the worker queues
56
+ def reset workers
57
+ workers.each{|worker| @queues[worker].clear if @queues[worker]}
58
+ end
51
59
  end
52
60
  end
data/lib/rplex/server.rb CHANGED
@@ -36,6 +36,17 @@ module Rplex
36
36
  [200,{'Content-Type' => 'application/json'},@overseer.backlog.to_json]
37
37
  end
38
38
 
39
+ post '/reset' do
40
+ begin
41
+ reply={}
42
+ workers= params["workers"] ? params["workers"] : @overseer.workers
43
+ @overseer.reset(workers)
44
+ [200,{'Content-Type' => 'application/json'},@overseer.backlog.to_json]
45
+ rescue
46
+ status 500
47
+ end
48
+ end
49
+
39
50
  def self.define_settings cfg={}
40
51
  cfg||={}
41
52
  #the settings that are not public
data/lib/rplex.rb CHANGED
@@ -2,7 +2,7 @@ module Rplex
2
2
  module Version
3
3
  MAJOR = 0
4
4
  MINOR = 0
5
- TINY = 2
5
+ TINY = 3
6
6
  STRING = "#{MAJOR}.#{MINOR}.#{TINY}"
7
7
  end
8
8
  end
data/test/test_jobs.rb CHANGED
@@ -34,4 +34,20 @@ class TestOverseer < Test::Unit::TestCase
34
34
  ov<<job_data
35
35
  assert_equal([['worker1',1],['worker2',1]], ov.backlog)
36
36
  end
37
+
38
+ def test_reset
39
+ ov=Rplex::Overseer.new
40
+ assert(ov.backlog.empty?)
41
+ jd1={"identifier"=>"8888","data"=>{:foo=>"bar",:bar=>"foo"}}
42
+ jd2={"identifier"=>"9999","data"=>{:foo=>"bar",:bar=>"foo"}}
43
+ ov['worker1']
44
+ ov['worker2']
45
+ ov<<jd1
46
+ ov<<jd2
47
+ assert_equal([['worker1',2],['worker2',2]], ov.backlog)
48
+ ov.reset(['worker2'])
49
+ assert_equal([['worker1',2],['worker2',0]], ov.backlog)
50
+ ov.reset(['worker1'])
51
+ assert_equal([['worker1',0],['worker2',0]], ov.backlog)
52
+ end
37
53
  end
data/test/test_server.rb CHANGED
@@ -39,4 +39,16 @@ class ServerTest < Test::Unit::TestCase
39
39
  get '/backlog'
40
40
  assert_equal(200, last_response.status)
41
41
  end
42
+
43
+ def test_reset
44
+ get '/job/worker'
45
+ payload={"identifier"=>"8888","data"=>{"url"=>"http://foo.bar/drops","revision"=>"8888"}}
46
+ post '/job', payload
47
+ post '/job', payload
48
+ get '/backlog'
49
+ assert_equal([["worker",2]], JSON.parse(last_response.body))
50
+ post '/reset',{"workers"=>['worker']}
51
+ get '/backlog'
52
+ assert_equal([["worker",0]], JSON.parse(last_response.body))
53
+ end
42
54
  end
metadata CHANGED
@@ -1,103 +1,79 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: rplex
3
- version: !ruby/object:Gem::Version
4
- hash: 27
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.3
5
5
  prerelease:
6
- segments:
7
- - 0
8
- - 0
9
- - 2
10
- version: 0.0.2
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - Vassilis Rizopoulos
14
9
  autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
-
18
- date: 2012-01-04 00:00:00 Z
19
- dependencies:
20
- - !ruby/object:Gem::Dependency
12
+ date: 2012-04-20 00:00:00.000000000Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
21
15
  name: sinatra
22
- prerelease: false
23
- requirement: &id001 !ruby/object:Gem::Requirement
16
+ requirement: &2153566880 !ruby/object:Gem::Requirement
24
17
  none: false
25
- requirements:
18
+ requirements:
26
19
  - - ~>
27
- - !ruby/object:Gem::Version
28
- hash: 25
29
- segments:
30
- - 1
31
- - 3
32
- - 1
20
+ - !ruby/object:Gem::Version
33
21
  version: 1.3.1
34
22
  type: :runtime
35
- version_requirements: *id001
36
- - !ruby/object:Gem::Dependency
37
- name: rest-client
38
23
  prerelease: false
39
- requirement: &id002 !ruby/object:Gem::Requirement
24
+ version_requirements: *2153566880
25
+ - !ruby/object:Gem::Dependency
26
+ name: rest-client
27
+ requirement: &2153565980 !ruby/object:Gem::Requirement
40
28
  none: false
41
- requirements:
29
+ requirements:
42
30
  - - ~>
43
- - !ruby/object:Gem::Version
44
- hash: 1
45
- segments:
46
- - 1
47
- - 6
48
- - 7
31
+ - !ruby/object:Gem::Version
49
32
  version: 1.6.7
50
33
  type: :runtime
51
- version_requirements: *id002
52
- - !ruby/object:Gem::Dependency
53
- name: rdoc
54
34
  prerelease: false
55
- requirement: &id003 !ruby/object:Gem::Requirement
35
+ version_requirements: *2153565980
36
+ - !ruby/object:Gem::Dependency
37
+ name: rdoc
38
+ requirement: &2153565160 !ruby/object:Gem::Requirement
56
39
  none: false
57
- requirements:
40
+ requirements:
58
41
  - - ~>
59
- - !ruby/object:Gem::Version
60
- hash: 19
61
- segments:
62
- - 3
63
- - 10
64
- version: "3.10"
42
+ - !ruby/object:Gem::Version
43
+ version: '3.10'
65
44
  type: :development
66
- version_requirements: *id003
67
- - !ruby/object:Gem::Dependency
68
- name: hoe
69
45
  prerelease: false
70
- requirement: &id004 !ruby/object:Gem::Requirement
46
+ version_requirements: *2153565160
47
+ - !ruby/object:Gem::Dependency
48
+ name: hoe
49
+ requirement: &2153564380 !ruby/object:Gem::Requirement
71
50
  none: false
72
- requirements:
51
+ requirements:
73
52
  - - ~>
74
- - !ruby/object:Gem::Version
75
- hash: 27
76
- segments:
77
- - 2
78
- - 12
79
- version: "2.12"
53
+ - !ruby/object:Gem::Version
54
+ version: '2.12'
80
55
  type: :development
81
- version_requirements: *id004
82
- description: |-
83
- http://c11865-prj.zuehlke.com
84
-
56
+ prerelease: false
57
+ version_requirements: *2153564380
58
+ description: ! 'https://github.com/damphyr/rplex
59
+
60
+
85
61
  == DESCRIPTION:
86
-
62
+
63
+
87
64
  Simple asynchronous data based job management
88
-
89
- == INSTALL:
90
- email:
65
+
66
+
67
+ == INSTALL:'
68
+ email:
91
69
  - var@zuehlke.com
92
70
  executables: []
93
-
94
71
  extensions: []
95
-
96
- extra_rdoc_files:
72
+ extra_rdoc_files:
97
73
  - History.txt
98
74
  - Manifest.txt
99
75
  - README.txt
100
- files:
76
+ files:
101
77
  - Gemfile
102
78
  - History.txt
103
79
  - lib/rplex.rb
@@ -113,39 +89,31 @@ files:
113
89
  - .gemtest
114
90
  homepage: http://github.com/damphyr/rplex
115
91
  licenses: []
116
-
117
92
  post_install_message:
118
- rdoc_options:
93
+ rdoc_options:
119
94
  - --main
120
95
  - README.txt
121
- require_paths:
96
+ require_paths:
122
97
  - lib
123
- required_ruby_version: !ruby/object:Gem::Requirement
98
+ required_ruby_version: !ruby/object:Gem::Requirement
124
99
  none: false
125
- requirements:
126
- - - ">="
127
- - !ruby/object:Gem::Version
128
- hash: 3
129
- segments:
130
- - 0
131
- version: "0"
132
- required_rubygems_version: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ! '>='
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ required_rubygems_version: !ruby/object:Gem::Requirement
133
105
  none: false
134
- requirements:
135
- - - ">="
136
- - !ruby/object:Gem::Version
137
- hash: 3
138
- segments:
139
- - 0
140
- version: "0"
106
+ requirements:
107
+ - - ! '>='
108
+ - !ruby/object:Gem::Version
109
+ version: '0'
141
110
  requirements: []
142
-
143
111
  rubyforge_project: rplex
144
- rubygems_version: 1.8.6
112
+ rubygems_version: 1.8.12
145
113
  signing_key:
146
114
  specification_version: 3
147
115
  summary: rplex multiplexes jobs across multiple workers
148
- test_files:
116
+ test_files:
149
117
  - test/test_jobs.rb
150
118
  - test/test_rplex.rb
151
119
  - test/test_server.rb