server/routing/end.rb in cpee-2.0.19 vs server/routing/end.rb in cpee-2.0.20
- old
+ new
@@ -15,21 +15,33 @@
# <http://www.gnu.org/licenses/>.
require 'json'
require 'redis'
require 'daemonite'
+require_relative '../../lib/cpee/redis'
Daemonite.new do |opts|
- redis = Redis.new(path: "/tmp/redis.sock", db: 3)
- pubsubredis = Redis.new(path: "/tmp/redis.sock", db: 3)
+ opts[:runtime_opts] += [
+ ["--url=URL", "-uURL", "Specify redis url", ->(p){ opts[:redis_url] = p }],
+ ["--path=PATH", "-pPATH", "Specify redis path, e.g. /tmp/redis.sock", ->(p){ opts[:redis_path] = p }],
+ ["--db=DB", "-dDB", "Specify redis db, e.g. 1", ->(p) { opts[:redis_db] = p.to_i }]
+ ]
+ on startup do
+ opts[:redis_path] ||= '/tmp/redis.sock'
+ opts[:redis_db] ||= 1
+
+ CPEE::redis_connect opts
+ opts[:pubsubredis] = opts[:redis_dyn].call
+ end
+
run do
- pubsubredis.psubscribe('callback-end:*') do |on|
+ opts[:pubsubredis].psubscribe('callback-end:*') do |on|
on.pmessage do |pat, what, message|
_, key = what.split(':')
index = message.index(' ')
instance = message[0...index]
- redis.multi do |multi|
+ opts[:redis].multi do |multi|
multi.srem("instance:#{instance}/callbacks",key)
multi.del("instance:#{instance}/callback/#{key}/uuid")
multi.del("instance:#{instance}/callback/#{key}/label")
multi.del("instance:#{instance}/callback/#{key}/position")
multi.del("instance:#{instance}/callback/#{key}/type")