coney_island 0.0.5 → 0.0.6

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: fdf7b8e2dfbaa750deb86831a4c1a98b42e620b0
4
- data.tar.gz: 05701ccb0b9c4c3cdf4f1d293270bc55062c8c26
3
+ metadata.gz: c02ec5e2739e99b82cac31f7b393b6bde299f7f4
4
+ data.tar.gz: 2587ce1a6f993c4b273a341a7c0f3d216dd82cd4
5
5
  SHA512:
6
- metadata.gz: be8931b31581fa30a558947a0625b672733b3b8dba793ef7887fed06ae659aa9f538452d30ae20d2f8bc36b97330b1844851258ee8992a31a45f051adc350001
7
- data.tar.gz: 367b56c8b52f12e96f2451d80860e256767f013c3d3c19430822695da2923a08ef64d283771d150605be8ee3bdfd100b9b9baff8853b33c75f937373abb85b51
6
+ metadata.gz: 5cf7270c89c814973c28decd113525ac793d03293217ab470d8d953c4da3768bba5bf01dc10257fc678fee402d19d0f10b64d7c2f915300cae5761f0047d540a
7
+ data.tar.gz: 73595b08270efb41d1101ba4bd2895faac1436e012ba4ad140ef4b5514a387d4ab23f6cf8703e5c09526c443b27d0f0c1c7ba8c1709cb5c0991984c3c389c6cd
data/lib/coney_island.rb CHANGED
@@ -13,7 +13,7 @@ module ConeyIsland
13
13
  end
14
14
 
15
15
  def self.amqp_parameters
16
- @amqp_parameters ||= (self.config.present? ? self.config[:amqp_connection] : nil)
16
+ @amqp_parameters
17
17
  end
18
18
 
19
19
  def self.handle_connection
@@ -35,6 +35,11 @@ module ConeyIsland
35
35
  end
36
36
 
37
37
  def self.config=(config_hash)
38
+ self.amqp_parameters = config_hash.delete :amqp_connection
39
+ if !self.single_amqp_connection?
40
+ ConeyIsland::Submitter.amqp_parameters = config_hash.delete :amqp_connection_submitter
41
+ ConeyIsland::Worker.amqp_parameters = config_hash.delete :amqp_connection_worker
42
+ end
38
43
  ConeyIsland::Worker.config=(config_hash)
39
44
  end
40
45
 
@@ -42,6 +47,10 @@ module ConeyIsland
42
47
  ConeyIsland::Worker.config
43
48
  end
44
49
 
50
+ def self.single_amqp_connection?
51
+ !!self.amqp_parameters
52
+ end
53
+
45
54
  def self.initialize_background
46
55
  ConeyIsland::Worker.initialize_background
47
56
  end
@@ -27,8 +27,31 @@ module ConeyIsland
27
27
  end
28
28
  end
29
29
 
30
+ def self.exchange
31
+ @exchange
32
+ end
33
+
34
+ def self.amqp_parameters=(params)
35
+ @amqp_parameters = params
36
+ end
37
+
38
+ def self.amqp_parameters
39
+ @amqp_parameters
40
+ end
41
+
42
+ def self.handle_connection
43
+ if ConeyIsland.single_amqp_connection?
44
+ ConeyIsland.handle_connection
45
+ @exchange = ConeyIsland.exchange
46
+ else
47
+ @connection ||= AMQP.connect(self.amqp_parameters)
48
+ @channel ||= AMQP::Channel.new(@connection)
49
+ @exchange = @channel.topic('coney_island')
50
+ end
51
+ end
52
+
30
53
  def self.handle_publish(args)
31
- ConeyIsland.handle_connection unless @run_inline
54
+ self.handle_connection unless @run_inline
32
55
  jobs = (args.first.is_a? Array) ? args : [args]
33
56
  jobs.each do |args|
34
57
  if (args.first.is_a? Class or args.first.is_a? Module) and (args[1].is_a? String or args[1].is_a? Symbol) and args.last.is_a? Hash and 3 == args.length
@@ -45,7 +68,7 @@ module ConeyIsland
45
68
  else
46
69
  work_queue = job_args.delete :work_queue
47
70
  work_queue ||= 'default'
48
- ConeyIsland.exchange.publish((job_args.to_json), routing_key: "carousels.#{work_queue}")
71
+ self.exchange.publish((job_args.to_json), routing_key: "carousels.#{work_queue}")
49
72
  end
50
73
  end
51
74
  RequestStore.store[:completed_jobs] ||= 0
@@ -1,3 +1,3 @@
1
1
  module ConeyIsland
2
- VERSION = "0.0.5"
2
+ VERSION = "0.0.6"
3
3
  end
@@ -48,6 +48,35 @@ module ConeyIsland
48
48
  @notifier = "ConeyIsland::Notifiers::#{self.config[:notifier_service]}Notifier".constantize
49
49
  end
50
50
 
51
+ def self.exchange
52
+ @exchange
53
+ end
54
+
55
+ def self.channel
56
+ @channel
57
+ end
58
+
59
+ def self.amqp_parameters=(params)
60
+ @amqp_parameters = params
61
+ end
62
+
63
+ def self.amqp_parameters
64
+ @amqp_parameters
65
+ end
66
+
67
+ def self.handle_connection
68
+ if ConeyIsland.single_amqp_connection?
69
+ ConeyIsland.handle_connection
70
+ @exchange = ConeyIsland.exchange
71
+ @channel = ConeyIsland.channel
72
+ else
73
+ puts self.amqp_parameters
74
+ @connection ||= AMQP.connect(self.amqp_parameters)
75
+ @channel ||= AMQP::Channel.new(@connection)
76
+ @exchange = @channel.topic('coney_island')
77
+ end
78
+ end
79
+
51
80
  def self.start
52
81
  @child_count.times do
53
82
  child_pid = Process.fork
@@ -68,19 +97,19 @@ module ConeyIsland
68
97
  self.shutdown('TERM')
69
98
  end
70
99
 
71
- ConeyIsland.handle_connection
100
+ self.handle_connection
72
101
 
73
102
  self.log.info("Connecting to AMQP broker. Running #{AMQP::VERSION}")
74
103
 
75
104
  #send a heartbeat every 15 seconds to avoid aggresive network configurations that close quiet connections
76
- heartbeat_exchange = ConeyIsland.channel.fanout('coney_island_heartbeat')
105
+ heartbeat_exchange = self.channel.fanout('coney_island_heartbeat')
77
106
  EventMachine.add_periodic_timer(15) do
78
107
  heartbeat_exchange.publish({:instance_name => @ticket})
79
108
  end
80
109
 
81
- ConeyIsland.channel.prefetch @prefetch_count
82
- @queue = ConeyIsland.channel.queue(@full_instance_name, auto_delete: false, durable: true)
83
- @queue.bind(ConeyIsland.exchange, routing_key: 'carousels.' + @ticket)
110
+ self.channel.prefetch @prefetch_count
111
+ @queue = self.channel.queue(@full_instance_name, auto_delete: false, durable: true)
112
+ @queue.bind(self.exchange, routing_key: 'carousels.' + @ticket)
84
113
  @queue.subscribe(:ack => true) do |metadata,payload|
85
114
  self.handle_incoming_message(metadata,payload)
86
115
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: coney_island
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.0.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Eric Draut
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-09-24 00:00:00.000000000 Z
12
+ date: 2014-09-25 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails