fanforce-workers 0.4.7 → 0.5.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.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- ZTc1NWI1N2I0YWE5OTNiMjIwMGJlYjM2MTUyN2RlNGJiMGIwYTY3OA==
4
+ NGY5NDAwMDQxNWJkNzk4Y2MzZTk5ZjdiNzM2MzZlMGFlMGZkMGI4MQ==
5
5
  data.tar.gz: !binary |-
6
- ZjkxOTgxYjljNGFkZDY3MjhiZmYxM2RiZWJmNTc4Yzc1ODEyMzlhZg==
6
+ OTIyMDgwM2UzNWM5YjdkMjUwMWNlMzRkZTBkYWYyZmU5YWUxNGM3YQ==
7
7
  !binary "U0hBNTEy":
8
8
  metadata.gz: !binary |-
9
- ZjhiZjdiNmYwNzA3YmM3OTUyYjkwOTA5MWRmYmEyMTJhNDc2YWZhYjgxOTQy
10
- ZjE3N2JmYmFhZDMwMWM3YzY2NWJlNjFhZTkzMmQxMmIyY2RiNzFiOWNiNjgx
11
- MzQ1ZmJkOWMyNmVmNzM5OTdlNmM4ZjMyNGFlZWQwNmZhNjljODM=
9
+ OWQ2OGMwYWY1NTQ1ZGE1ZWU1YWQ1NGVjNmJhNjVkZGQwZmMxZjhmNjNiNmIw
10
+ M2I1MzVhZmMwNjE4N2Q2OGQ4ODI2Yjg5YTY1ZWU0NDRhZmMwNzkxYzMzZTk2
11
+ NDE4NjdlYWU3MzYzYTQ5MDY2NDYwNmQ4NWJiODY4ODVlMGYzYTI=
12
12
  data.tar.gz: !binary |-
13
- ZTZhZGMxY2QxNzZjNTA2ZDMyOWJkMWU2MmRhN2UwZTU1ZmM5OWNhYWJmMTQx
14
- YjM0YWFkMGYyNWUyYzc2ZWYzNGM0MmUxYjNiNzM5YWM3MjJkOTc5NzYyYzI2
15
- NGZiNDRkMTU1MTUwZmEwOTE3MzI5MzhhZGNmYzBmMDY5Nzc1MzI=
13
+ MWFiZDI2YTI5NWExYmRlOTJkZjcwNTMyNDk5NWE2MGNkYTVkYmY1ZTY1NWRj
14
+ Y2YxNjU2MDZmM2ZhMGEyNDNkYjUxZmU3ZmI4YTllMjE3ZDlmMmUxMDM2MTBk
15
+ MDJhMjkzOTdlNjdhMWMyZjExMjk3ODI5M2QxM2VhYWEzZDVjMGQ=
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
1
  fanforce-workers
2
2
  ==
3
3
 
4
- Fanforce workers library used by plugins to connect with iron_mg and iron_worker_ng
4
+ Fanforce workers used by addons to connect with iron_mg and iron_worker_ng
@@ -7,7 +7,7 @@ Gem::Specification.new do |gem|
7
7
  gem.name = 'fanforce-workers'
8
8
  gem.version = Fanforce::Workers::VERSION
9
9
  gem.date = '2012-10-19'
10
- gem.summary = %q{Fanforce workers library used by various Fanforce addons.}
10
+ gem.summary = %q{Fanforce workers used by various Fanforce addons for background processing.}
11
11
  gem.authors = ['Caleb Clark']
12
12
  gem.email = ['cclark@fanforce.com']
13
13
  gem.homepage = 'http://github.com/fanforce/fanforce-workers'
@@ -17,6 +17,6 @@ Gem::Specification.new do |gem|
17
17
  gem.require_paths = ['lib']
18
18
 
19
19
  gem.add_runtime_dependency 'iron_mq', '~> 4'
20
- gem.add_runtime_dependency 'fanforce-api', '~> 0.9'
21
20
  gem.add_runtime_dependency 'typhoeus'
21
+ gem.add_runtime_dependency 'fanforce-api', '~> 0.9'
22
22
  end
@@ -1,6 +1,6 @@
1
1
  class Fanforce
2
2
  require_relative 'workers/version'
3
3
  require_relative 'workers/workers'
4
- require_relative 'workers/worker'
4
+ require_relative 'workers/workers'
5
5
  end
6
6
 
@@ -1,3 +1,5 @@
1
+ require 'iron_mq'
2
+
1
3
  class Fanforce::Workers::Iron
2
4
 
3
5
  def initialize(opts={})
@@ -1,5 +1,5 @@
1
1
  class Fanforce
2
2
  class Workers
3
- VERSION = '0.4.7'
3
+ VERSION = '0.5.1'
4
4
  end
5
5
  end
@@ -1,24 +1,14 @@
1
- require 'iron_mq'
2
-
3
1
  class Fanforce::Workers
4
2
 
5
3
  def initialize(opts={})
6
4
  @opts = opts
7
5
  end
8
6
 
9
- def self.add_error(queue_id, payload)
10
- self.new.iron.enqueue("#{queue_id}-ERRORS", payload)
11
- end
12
-
13
7
  def iron
14
8
  require_relative 'iron'
15
9
  @iron ||= Fanforce::Workers::Iron.new(@opts)
16
10
  end
17
11
 
18
- def self.enqueue(queue_id, payload)
19
- self.new.enqueue(queue_id, payload)
20
- end
21
-
22
12
  def enqueue(queue_id, payload)
23
13
  raise 'Payload being sent to the queue must be a Hash' if !payload.is_a?(Hash)
24
14
  iron.enqueue queue_id, params: payload, retries: 0
@@ -31,4 +21,63 @@ class Fanforce::Workers
31
21
  msg.delete
32
22
  end
33
23
 
24
+ ##########################################################################################
25
+
26
+ def self.add_error(queue_id, payload)
27
+ self.new.iron.enqueue("#{queue_id}-ERRORS", payload)
28
+ end
29
+
30
+ def self.enqueue(queue_id, payload)
31
+ self.new.enqueue(queue_id, payload)
32
+ end
33
+
34
+ ##########################################################################################
35
+
36
+ def self.run(worker_data, &code_block)
37
+ require '.pluginenv'
38
+ require 'iron_mq'
39
+ require 'fanforce/api'
40
+
41
+ run_validations
42
+ run_worker IronMQ::Client.new.queue(worker_data['worker_id']).get(timeout: 3600), worker_data, &code_block
43
+ end
44
+
45
+ def self.run_validations
46
+
47
+ end
48
+
49
+ def run_worker(msg, worker_data, &code_block)
50
+ puts '----------------------------------------------------------'
51
+ print 'PROCESSING MESSAGE: '
52
+ task_data = Fanforce.decode_json(msg.body)
53
+
54
+ set_env_vars(worker_data['env_vars'])
55
+ code_block.call(task_data[:params].clone, task_data[:retries])
56
+ msg.delete
57
+
58
+ rescue Exception => e
59
+ if msg.nil?
60
+ puts 'MESSAGE IS NIL'
61
+ return
62
+ end
63
+ task_data[:last_error] = {
64
+ exception: e.class.name,
65
+ message: e.message,
66
+ backtrace: e.backtrace,
67
+ raised_at: Time.now
68
+ }
69
+ task_data[:last_error][:curl_command] = e.curl_command if e.respond_to?(:curl_command)
70
+ task_data[:env_vars] = worker_data['env_vars']
71
+
72
+ puts "ADDING TO ERROR QUEUE: #{task_data.to_json}"
73
+ self.add_error worker_data['worker_id'], task_data
74
+ msg.delete
75
+ puts 'DELETED MESSAGE'
76
+ end
77
+
78
+ def set_env_vars(vars)
79
+ vars.each {|k,v| ENV[k.to_s]=v }
80
+ load 'fanforce/api/ff_globals.rb'
81
+ end
82
+
34
83
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fanforce-workers
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.7
4
+ version: 0.5.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Caleb Clark
@@ -25,33 +25,33 @@ dependencies:
25
25
  - !ruby/object:Gem::Version
26
26
  version: '4'
27
27
  - !ruby/object:Gem::Dependency
28
- name: fanforce-api
28
+ name: typhoeus
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ~>
31
+ - - ! '>='
32
32
  - !ruby/object:Gem::Version
33
- version: '0.9'
33
+ version: '0'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ~>
38
+ - - ! '>='
39
39
  - !ruby/object:Gem::Version
40
- version: '0.9'
40
+ version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
- name: typhoeus
42
+ name: fanforce-api
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ! '>='
45
+ - - ~>
46
46
  - !ruby/object:Gem::Version
47
- version: '0'
47
+ version: '0.9'
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ! '>='
52
+ - - ~>
53
53
  - !ruby/object:Gem::Version
54
- version: '0'
54
+ version: '0.9'
55
55
  description:
56
56
  email:
57
57
  - cclark@fanforce.com
@@ -67,7 +67,6 @@ files:
67
67
  - lib/fanforce/workers.rb
68
68
  - lib/fanforce/workers/iron.rb
69
69
  - lib/fanforce/workers/version.rb
70
- - lib/fanforce/workers/worker.rb
71
70
  - lib/fanforce/workers/workers.rb
72
71
  homepage: http://github.com/fanforce/fanforce-workers
73
72
  licenses: []
@@ -91,5 +90,5 @@ rubyforge_project:
91
90
  rubygems_version: 2.0.3
92
91
  signing_key:
93
92
  specification_version: 4
94
- summary: Fanforce workers library used by various Fanforce addons.
93
+ summary: Fanforce workers used by various Fanforce addons for background processing.
95
94
  test_files: []
@@ -1,65 +0,0 @@
1
- class Fanforce::Worker
2
-
3
- def self.run(worker_data, &code_block)
4
- self.new(worker_data, &code_block)
5
- end
6
-
7
- def initialize(worker_data, &code_block)
8
- require_dependencies
9
- run_validations
10
-
11
- @worker_data = worker_data
12
- @code_block = code_block
13
-
14
- run_worker iron_mq.queue(worker_data['worker_id']).get(timeout: 3600)
15
- end
16
-
17
- def require_dependencies
18
- require '.pluginenv'
19
- require 'iron_mq'
20
- require 'fanforce/api'
21
- end
22
-
23
- def run_validations
24
-
25
- end
26
-
27
- def iron_mq
28
- @iron_mq ||= IronMQ::Client.new
29
- end
30
-
31
- def run_worker(msg)
32
- puts '----------------------------------------------------------'
33
- print 'PROCESSING MESSAGE: '
34
- task_data = Fanforce.decode_json(msg.body)
35
-
36
- set_env_vars(@worker_data['env_vars'])
37
- @code_block.call(task_data[:params].clone, task_data[:retries])
38
- msg.delete
39
-
40
- rescue Exception => e
41
- if msg.nil?
42
- puts 'MESSAGE IS NIL'
43
- return
44
- end
45
- task_data[:last_error] = {
46
- exception: e.class.name,
47
- message: e.message,
48
- backtrace: e.backtrace,
49
- raised_at: Time.now
50
- }
51
- task_data[:last_error][:curl_command] = e.curl_command if e.respond_to?(:curl_command)
52
- task_data[:env_vars] = @worker_data['env_vars']
53
-
54
- puts "ADDING TO ERROR QUEUE: #{task_data.to_json}"
55
- Fanforce::Workers.add_error @worker_data['worker_id'], task_data
56
- msg.delete
57
- puts 'DELETED MESSAGE'
58
- end
59
-
60
- def set_env_vars(vars)
61
- vars.each {|k,v| ENV[k.to_s]=v }
62
- load 'fanforce/api/ff_globals.rb'
63
- end
64
-
65
- end