Sha256: 5cf2ae312cf0b2a0d93d26cd5275fd9cf871d57dbacc1e67456292e7902ed986
Contents?: true
Size: 1.72 KB
Versions: 3
Compression:
Stored size: 1.72 KB
Contents
module Weeter module Plugins module Notification class Resque include Weeter::Plugins::Net::Redis def initialize(client_app_config) @config = client_app_config end def publish_tweet(tweet_item) resque_job = %Q|{"class":"WeeterPublishTweetJob","args":[#{tweet_item.to_json}]}| Weeter.logger.info("Publishing tweet #{tweet_item['id']} from user #{tweet_item['user']['id_str']}: #{tweet_item['text']}") enqueue(resque_job) end def delete_tweet(tweet_item) resque_job = %Q|{"class":"WeeterDeleteTweetJob","args":[#{tweet_item.to_json}]}| Weeter.logger.info("Deleting tweet #{tweet_item['id']} for user #{tweet_item['user']['id_str']}") enqueue(resque_job) end def notify_missed_tweets(tweet_item) resque_job = %Q|{"class":"WeeterMissedTweetsJob","args":[#{tweet_item.to_json}]}| Weeter.logger.info("Notifying of missed tweets (#{tweet_item.missed_tweets_count}).") enqueue(resque_job) end def notify_rate_limiting_initiated(tweet_item, limited_keys) payload = tweet_item.to_hash.merge(:limited_keys => limited_keys) payload_json = MultiJson.encode(payload) resque_job = %Q|{"class":"WeeterRateLimitingInitiatedJob","args":[#{payload_json}]}| Weeter.logger.info("Initiated rate limiting with tweet: #{payload_json}") enqueue(resque_job) end protected def redis @redis ||= create_redis_client end def enqueue(job) redis.rpush(queue_key, job) end def queue_key "resque:queue:#{@config.queue}" end end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
weeter-0.15.0 | lib/weeter/plugins/notification/resque.rb |
weeter-0.14.0 | lib/weeter/plugins/notification/resque.rb |
weeter-0.13.0 | lib/weeter/plugins/notification/resque.rb |