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")