aboutsummaryrefslogtreecommitdiffstats
path: root/worker_node/lib/event_channel.rb
diff options
context:
space:
mode:
Diffstat (limited to 'worker_node/lib/event_channel.rb')
-rw-r--r--worker_node/lib/event_channel.rb10
1 files changed, 6 insertions, 4 deletions
diff --git a/worker_node/lib/event_channel.rb b/worker_node/lib/event_channel.rb
index 9574bc7..c1c0d9c 100644
--- a/worker_node/lib/event_channel.rb
+++ b/worker_node/lib/event_channel.rb
@@ -2,18 +2,20 @@ class EventChannel
class << self
def setup
return if @dalli
- @dalli = Dalli::Client.new(Settings.memcached, namespace: "aclog-worker-node:")
+ @dalli = Dalli::Client.new(Settings.memcached, namespace: "aclog-worker-node")
@channel = EM::Channel.new
end
def push(data)
raise ScriptError, "Call EventChannel.setup first" unless @dalli
if id = data[:identifier]
- if @dalli.get(id)
- WorkerNode.logger.debug("UniqueChannel") { "Duplicate event: #{id}" }
+ key, val = id.split("#", 2)
+ cur = @dalli.get(key)
+ if cur && (!val || (cur <=> val) > -1)
+ WorkerNode.logger.debug("UniqueChannel") { "Duplicate event: #{key}" }
return
else
- @dalli.set(id, true)
+ @dalli.set(key, val || true)
end
end
@channel << data