worker-army 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 +4 -4
- data/README.md +1 -0
- data/VERSION +1 -1
- data/lib/worker_army/base.rb +10 -4
- data/lib/worker_army/client.rb +2 -4
- data/lib/worker_army/queue.rb +5 -3
- data/worker-army.gemspec +3 -3
- data/worker_army.yml.sample +1 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bcedbff4a178a8d672661146ff5307b3c0bcbe90
|
4
|
+
data.tar.gz: 8d94f2c1e5e3829f18a7b9f66db5e2b65e467547
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 08c8ca3a72475abfc54d1316c175503b6b66679c04bf24a0cbae3ecd52540369cae604564828a9bc163d7ec43c8dcefc15325b6a80ed4e42bc9295043a76ffba
|
7
|
+
data.tar.gz: 4e61962caf4ec1a08b431d798e2538f809370ff4a5a619535e5569bdb2363a159522e279bcdbff0b3c79d1e8b8e80e1cc4fa6b5554fee1eea27d1253c7a0d5b1
|
data/README.md
CHANGED
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.5.0
|
data/lib/worker_army/base.rb
CHANGED
@@ -1,9 +1,8 @@
|
|
1
1
|
module WorkerArmy
|
2
2
|
class Base
|
3
|
-
attr_accessor :config
|
4
|
-
|
5
3
|
class << self
|
6
4
|
def config
|
5
|
+
return $config if $config
|
7
6
|
if ENV['worker_army_redis_host'] and ENV['worker_army_redis_port']
|
8
7
|
config = { 'redis_host' => ENV['worker_army_redis_host'], 'redis_port' => ENV['worker_army_redis_port'] }
|
9
8
|
if ENV['worker_army_redis_auth']
|
@@ -21,6 +20,9 @@ module WorkerArmy
|
|
21
20
|
if ENV['worker_army_endpoint']
|
22
21
|
config['endpoint'] = ENV['worker_army_endpoint']
|
23
22
|
end
|
23
|
+
if ENV['worker_army_store_job_data']
|
24
|
+
config['store_job_data'] = (ENV['worker_army_store_job_data'] == 'true')
|
25
|
+
end
|
24
26
|
else
|
25
27
|
begin
|
26
28
|
# puts "Using config in your home directory"
|
@@ -29,9 +31,9 @@ module WorkerArmy
|
|
29
31
|
raise "worker-army configuration expected in ~/.worker_army.yml or provide env vars..."
|
30
32
|
end
|
31
33
|
end
|
32
|
-
config
|
34
|
+
$config = config
|
33
35
|
end
|
34
|
-
|
36
|
+
|
35
37
|
def client_retry_count(conf = nil)
|
36
38
|
if ENV['worker_army_client_retry_count']
|
37
39
|
return ENV['worker_army_client_retry_count'].to_i
|
@@ -43,6 +45,10 @@ module WorkerArmy
|
|
43
45
|
end
|
44
46
|
end
|
45
47
|
|
48
|
+
def config
|
49
|
+
WorkerArmy::Base.config
|
50
|
+
end
|
51
|
+
|
46
52
|
def worker_retry_count(conf = nil)
|
47
53
|
if ENV['worker_army_worker_retry_count']
|
48
54
|
return ENV['worker_army_worker_retry_count'].to_i
|
data/lib/worker_army/client.rb
CHANGED
@@ -9,9 +9,7 @@ module WorkerArmy
|
|
9
9
|
def push_job(job_class, data = {}, callback_url = nil, queue_prefix = 'queue', retry_count = 0)
|
10
10
|
raise "No data" unless data
|
11
11
|
raise "No job class provided" unless job_class
|
12
|
-
|
13
|
-
@config = self.config
|
14
|
-
worker_army_base_url = @config['endpoint']
|
12
|
+
worker_army_base_url = config['endpoint']
|
15
13
|
callback_url = "#{worker_army_base_url}/generic_callback" unless callback_url
|
16
14
|
response = nil
|
17
15
|
begin
|
@@ -25,7 +23,7 @@ module WorkerArmy
|
|
25
23
|
rescue => e
|
26
24
|
puts "Failed! Retrying (#{retry_count})..."
|
27
25
|
retry_count += 1
|
28
|
-
if retry_count < client_retry_count(
|
26
|
+
if retry_count < client_retry_count(config)
|
29
27
|
sleep (retry_count * 2)
|
30
28
|
push_job(job_class, data, callback_url, queue_prefix, retry_count)
|
31
29
|
end
|
data/lib/worker_army/queue.rb
CHANGED
@@ -9,14 +9,14 @@ require File.dirname(__FILE__) + '/base'
|
|
9
9
|
module WorkerArmy
|
10
10
|
class Queue < Base
|
11
11
|
def initialize
|
12
|
-
@config =
|
12
|
+
@config = config
|
13
13
|
Queue.redis_instance
|
14
14
|
@log = WorkerArmy::Log.new.log
|
15
15
|
end
|
16
16
|
|
17
17
|
class << self
|
18
18
|
def redis_instance
|
19
|
-
$config =
|
19
|
+
$config = config unless $config
|
20
20
|
unless $redis
|
21
21
|
$redis = Redis.new(host: $config['redis_host'], port: $config['redis_port'])
|
22
22
|
end
|
@@ -57,7 +57,9 @@ module WorkerArmy
|
|
57
57
|
if data
|
58
58
|
job_id = data['job_id']
|
59
59
|
callback_url = data['callback_url']
|
60
|
-
|
60
|
+
if @config['store_job_data']
|
61
|
+
Queue.redis_instance["job_#{job_id}"] = data.to_json
|
62
|
+
end
|
61
63
|
Queue.redis_instance.lpush 'jobs', job_id
|
62
64
|
if callback_url
|
63
65
|
data.delete("callback_url")
|
data/worker-army.gemspec
CHANGED
@@ -2,16 +2,16 @@
|
|
2
2
|
# DO NOT EDIT THIS FILE DIRECTLY
|
3
3
|
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
4
|
# -*- encoding: utf-8 -*-
|
5
|
-
# stub: worker-army 0.
|
5
|
+
# stub: worker-army 0.5.0 ruby lib
|
6
6
|
|
7
7
|
Gem::Specification.new do |s|
|
8
8
|
s.name = "worker-army"
|
9
|
-
s.version = "0.
|
9
|
+
s.version = "0.5.0"
|
10
10
|
|
11
11
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
12
12
|
s.require_paths = ["lib"]
|
13
13
|
s.authors = ["Oliver Kiessler"]
|
14
|
-
s.date = "2014-05
|
14
|
+
s.date = "2014-06-05"
|
15
15
|
s.description = "Simple redis based worker queue with a HTTP/Rest interface"
|
16
16
|
s.email = "kiessler@inceedo.com"
|
17
17
|
s.executables = ["worker_army"]
|
data/worker_army.yml.sample
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: worker-army
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Oliver Kiessler
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-05
|
11
|
+
date: 2014-06-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: redis
|