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 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