Add benchmarks and logging to resque jobs
This commit is contained in:
parent
f3ced6d96c
commit
4da97be84b
10 changed files with 36 additions and 3 deletions
|
|
@ -1,5 +1,6 @@
|
|||
module Jobs
|
||||
class HttpPost
|
||||
class HttpPost
|
||||
extend ResqueJobLogging
|
||||
@queue = :http
|
||||
|
||||
def self.perform(url, body, tries_remaining)
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
module Jobs
|
||||
class InviteUser
|
||||
extend ResqueJobLogging
|
||||
@queue = :mail
|
||||
def self.perform(sender_id, email, aspect_id, invite_message)
|
||||
user = User.find(sender_id)
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
module Jobs
|
||||
class MailRequestAcceptance
|
||||
extend ResqueJobLogging
|
||||
@queue = :mail
|
||||
def self.perform(recipient_id, sender_id)
|
||||
Notifier.request_accepted(recipient_id, sender_id).deliver
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
module Jobs
|
||||
class MailRequestReceived
|
||||
extend ResqueJobLogging
|
||||
@queue = :mail
|
||||
def self.perform(recipient_id, sender_id)
|
||||
Notifier.new_request(recipient_id, sender_id).deliver
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
module Jobs
|
||||
class PostToServices
|
||||
class PostToServices
|
||||
extend ResqueJobLogging
|
||||
@queue = :http_service
|
||||
def self.perform(user_id, post_id, url)
|
||||
user = User.find_by_id(user_id)
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
module Jobs
|
||||
class Receive
|
||||
extend ResqueJobLogging
|
||||
@queue = :receive
|
||||
def self.perform(user_id, xml, salmon_author_id)
|
||||
user = User.find(user_id)
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
module Jobs
|
||||
class ReceiveLocal
|
||||
extend ResqueJobLogging
|
||||
@queue = :receive_local
|
||||
def self.perform(user_id, person_id, object_type, object_id)
|
||||
user = User.find(user_id)
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
module Jobs
|
||||
class ReceiveSalmon
|
||||
extend ResqueJobLogging
|
||||
@queue = :receive_salmon
|
||||
def self.perform(user_id, xml)
|
||||
user = User.find(user_id)
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
module Jobs
|
||||
class SocketWebfinger
|
||||
extend ResqueJobLogging
|
||||
@queue = :socket_webfinger
|
||||
def self.perform(user_id, account, opts={})
|
||||
finger = Webfinger.new(account)
|
||||
|
|
@ -7,7 +8,7 @@ module Jobs
|
|||
result = finger.fetch
|
||||
result.socket_to_uid(user_id, opts)
|
||||
rescue
|
||||
Diaspora::WebSocket.queue_to_user(user_id,
|
||||
Diaspora::WebSocket.queue_to_user(user_id,
|
||||
{:class => 'people',
|
||||
:status => 'fail',
|
||||
:query => account,
|
||||
|
|
|
|||
24
lib/resque_job_logging.rb
Normal file
24
lib/resque_job_logging.rb
Normal file
|
|
@ -0,0 +1,24 @@
|
|||
module ResqueJobLogging
|
||||
def around_perform_log_job(*args)
|
||||
log_string = "event=resque_job job=#{self} "
|
||||
error = nil
|
||||
time = Benchmark.realtime{
|
||||
begin
|
||||
yield
|
||||
rescue Exception => e
|
||||
error = e
|
||||
end
|
||||
}*1000
|
||||
if error
|
||||
log_string += "status=error error=\"#{error}\" "
|
||||
else
|
||||
log_string += "status=complete "
|
||||
end
|
||||
log_string += "ms=#{time} "
|
||||
arg_count = 1
|
||||
args.each{|arg| log_string += "arg#{arg_count}=\"#{arg[0..30]}\" "}
|
||||
|
||||
Rails.logger.info(log_string)
|
||||
raise error if error
|
||||
end
|
||||
end
|
||||
Loading…
Reference in a new issue