Sha256: 97658e533abf91424d90faff74213ac2f85ff787d816daa1cb523f90ac48ebc3
Contents?: true
Size: 1.38 KB
Versions: 3
Compression:
Stored size: 1.38 KB
Contents
require 'multi_json' module Weeter module Plugins module Subscription class Redis include Weeter::Plugins::Net::Redis def initialize(client_app_config) @config = client_app_config end def get_initial_filters(&block) deferred_get = redis.get(@config.subscriptions_key) do |value| if value.nil? raise "Expected to find subscription data at redis key #{@config.subscriptions_key}" end yield MultiJson.decode(value) end deferred_get.errback do |message| Weeter.logger.error(message) end end def listen_for_filter_update(tweet_consumer) pub_sub_redis.subscribe(@config.subscriptions_changed_channel) pub_sub_redis.on(:message) do |channel, message| Weeter.logger.info [:message, channel, message] Weeter.logger.info("Retrieving updated filters from redis") get_initial_filters do |filter_params| Weeter.logger.info("Triggering reconnect Twitter stream with new filters") tweet_consumer.reconnect(filter_params) end end end protected def redis @redis ||= create_redis_client end def pub_sub_redis @pub_sub_redis ||= create_redis_client end end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
weeter-0.15.0 | lib/weeter/plugins/subscription/redis.rb |
weeter-0.14.0 | lib/weeter/plugins/subscription/redis.rb |
weeter-0.13.0 | lib/weeter/plugins/subscription/redis.rb |