worker-army 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: 927bd98e49089fff441dad39d22b1415e72846e3
4
- data.tar.gz: 543b233b40f905bac71fc9378767412de284cfe8
3
+ metadata.gz: bcedbff4a178a8d672661146ff5307b3c0bcbe90
4
+ data.tar.gz: 8d94f2c1e5e3829f18a7b9f66db5e2b65e467547
5
5
  SHA512:
6
- metadata.gz: 3c8150b9f82e39b7dc5de67659166c975ef39ec8978065fa1f30b7b1842c2fc5e8f524a86093c6df9c7af281692775bb45489e089ae4d2955ce8f59eb936e97e
7
- data.tar.gz: 81516c5776426b4b19030eac5ff4c722c22f0713b6c6756e9e1ff504982b77743737faf20090a6826b6630b3ec824670a800c8ad12539839c95be67b1ea32d13
6
+ metadata.gz: 08c8ca3a72475abfc54d1316c175503b6b66679c04bf24a0cbae3ecd52540369cae604564828a9bc163d7ec43c8dcefc15325b6a80ed4e42bc9295043a76ffba
7
+ data.tar.gz: 4e61962caf4ec1a08b431d798e2538f809370ff4a5a619535e5569bdb2363a159522e279bcdbff0b3c79d1e8b8e80e1cc4fa6b5554fee1eea27d1253c7a0d5b1
data/README.md CHANGED
@@ -30,6 +30,7 @@ If you can't provide or don't want to provide the config file at that location,
30
30
  worker_army_worker_retry_count
31
31
  worker_army_client_retry_count
32
32
  worker_army_callback_retry_count
33
+ worker_army_store_job_data
33
34
 
34
35
  ## Server / Queue
35
36
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.4.1
1
+ 0.5.0
@@ -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
@@ -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(@config)
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
@@ -9,14 +9,14 @@ require File.dirname(__FILE__) + '/base'
9
9
  module WorkerArmy
10
10
  class Queue < Base
11
11
  def initialize
12
- @config = self.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 = self.config unless $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
- Queue.redis_instance["job_#{job_id}"] = data.to_json
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.4.1 ruby lib
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.4.1"
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-30"
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"]
@@ -5,3 +5,4 @@ redis_auth: "YOUR_PASS"
5
5
  client_retry_count: 10
6
6
  worker_retry_count: 10
7
7
  callback_retry_count: 5
8
+ store_job_data: true
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.1
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-30 00:00:00.000000000 Z
11
+ date: 2014-06-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: redis