Class: Weeter::Plugins::Notification::Resque

Inherits:
Object
  • Object
show all
Includes:
Weeter::Plugins::Net::Redis
Defined in:
lib/weeter/plugins/notification/resque.rb

Instance Method Summary collapse

Methods included from Weeter::Plugins::Net::Redis

#create_redis_client

Constructor Details

#initialize(client_app_config) ⇒ Resque

Returns a new instance of Resque.



7
8
9
# File 'lib/weeter/plugins/notification/resque.rb', line 7

def initialize(client_app_config)
  @config = client_app_config
end

Instance Method Details

#delete_tweet(tweet_item) ⇒ Object



17
18
19
20
21
# File 'lib/weeter/plugins/notification/resque.rb', line 17

def delete_tweet(tweet_item)
  resque_job = %Q|{"class":"WeeterDeleteTweetJob","args":[#{tweet_item.to_json}],"jid": "#{SecureRandom.hex(12)}"}|
  Weeter.logger.info("Deleting tweet #{tweet_item['id']} for user #{tweet_item['user']['id_str']}")
  enqueue(resque_job)
end

#notify_missed_tweets(tweet_item) ⇒ Object



23
24
25
26
27
# File 'lib/weeter/plugins/notification/resque.rb', line 23

def notify_missed_tweets(tweet_item)
  resque_job = %Q|{"class":"WeeterMissedTweetsJob","args":[#{tweet_item.to_json}],"jid": "#{SecureRandom.hex(12)}"}|
  Weeter.logger.info("Notifying of missed tweets (#{tweet_item.missed_tweets_count}).")
  enqueue(resque_job)
end

#notify_rate_limiting_initiated(tweet_item, limited_keys) ⇒ Object



29
30
31
32
33
34
35
# File 'lib/weeter/plugins/notification/resque.rb', line 29

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}],"jid": "#{SecureRandom.hex(12)}"}|
  Weeter.logger.info("Initiated rate limiting with tweet: #{payload_json}")
  enqueue(resque_job)
end

#publish_tweet(tweet_item) ⇒ Object



11
12
13
14
15
# File 'lib/weeter/plugins/notification/resque.rb', line 11

def publish_tweet(tweet_item)
  resque_job = %Q|{"class":"WeeterPublishTweetJob","args":[#{tweet_item.to_json}],"jid": "#{SecureRandom.hex(12)}"}|
  Weeter.logger.info("Publishing tweet #{tweet_item['id']} from user #{tweet_item['user']['id_str']}: #{tweet_item['text']}")
  enqueue(resque_job)
end