micro_q 0.9.0 → 0.9.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/micro_q/dsl.rb +9 -5
- data/lib/micro_q/manager/default.rb +6 -2
- data/lib/micro_q/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 85d71665397e031adb0d4a67fc88d82b96b47e6f
|
4
|
+
data.tar.gz: c689e31647327758e24c3e3284ee02286523821f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 37a9585a5a0f6ece2a0f877ebf3e79b124132cc0acbb0f8c6a89e09dcb68a0bbdbbeff3ac7ceaea253c50f66a2a919a09822d5b2d5be3a1c3d80dab83f37698d
|
7
|
+
data.tar.gz: 22fc08bed15a60fb7131f096ee3af9e6b1c352f95b0c30fbf399a37b213282383f240535f9be8d51ea575d191a91b1f5c8246c9552ce4e7d536ea188d50f47f0
|
data/lib/micro_q/dsl.rb
CHANGED
@@ -23,15 +23,19 @@ module MicroQ
|
|
23
23
|
def self.attach_async_methods(target, opts)
|
24
24
|
target.class_eval do
|
25
25
|
(target.microq_options[:methods] |= opts.flatten).each do |method|
|
26
|
-
|
27
|
-
MicroQ::Proxy::Instance.new(
|
28
|
-
target.microq_options.dup.merge(:class => self)
|
29
|
-
).send(method, *args)
|
30
|
-
end unless respond_to?(:"#{method}_async")
|
26
|
+
DSL.define_proxy_method target, method
|
31
27
|
end
|
32
28
|
end
|
33
29
|
end
|
34
30
|
|
31
|
+
def self.define_proxy_method(target, method)
|
32
|
+
target.define_singleton_method(:"#{method}_async") do |*args|
|
33
|
+
MicroQ::Proxy::Instance.new(
|
34
|
+
target.microq_options.dup.merge(:class => self)
|
35
|
+
).send(method, *args)
|
36
|
+
end unless respond_to?(:"#{method}_async")
|
37
|
+
end
|
38
|
+
|
35
39
|
module ClassMethods
|
36
40
|
def worker(*opts)
|
37
41
|
self.class_eval do
|
@@ -63,13 +63,17 @@ module MicroQ
|
|
63
63
|
def build_missing_workers
|
64
64
|
@workers ||= []
|
65
65
|
|
66
|
-
workers.
|
66
|
+
workers.select!(&:alive?)
|
67
67
|
|
68
|
-
|
68
|
+
missing_worker_count.times do
|
69
69
|
workers << MicroQ.config.worker.new_link(current_actor)
|
70
70
|
end
|
71
71
|
end
|
72
72
|
|
73
|
+
def missing_worker_count
|
74
|
+
[MicroQ.config.workers - (workers.size + @busy.size), 0].max
|
75
|
+
end
|
76
|
+
|
73
77
|
def kill_all
|
74
78
|
(@workers + @busy).each {|w| w.terminate if w.alive? }
|
75
79
|
end
|
data/lib/micro_q/version.rb
CHANGED