diff --git a/app/models/jobs/http_post.rb b/app/models/jobs/http_post.rb index 319276d41e404c0a26d782897255f661ad01b480..5a63a419846e241bc61518be9daa0c4f61025ac7 100644 --- a/app/models/jobs/http_post.rb +++ b/app/models/jobs/http_post.rb @@ -1,5 +1,6 @@ module Jobs - class HttpPost + class HttpPost + extend ResqueJobLogging @queue = :http def self.perform(url, body, tries_remaining) diff --git a/app/models/jobs/invite_user.rb b/app/models/jobs/invite_user.rb index 4629f4b902e0016b7f5ca2ae4126c5af8a43b766..c9ec85476a7fb0f95e1bc7f61b84409dae9177b8 100644 --- a/app/models/jobs/invite_user.rb +++ b/app/models/jobs/invite_user.rb @@ -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) diff --git a/app/models/jobs/mail_request_acceptance.rb b/app/models/jobs/mail_request_acceptance.rb index 7cdeb6ae0a5b4970d772f3f044f52ac3f3df5dad..d0d07775a8cf986d9d275c51b16490b4c5a505e0 100644 --- a/app/models/jobs/mail_request_acceptance.rb +++ b/app/models/jobs/mail_request_acceptance.rb @@ -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 diff --git a/app/models/jobs/mail_request_received.rb b/app/models/jobs/mail_request_received.rb index b57e16fd6e33ad22521bdcfad7f4657eebd00047..0c2d66095e276409ca663230f56369bbdf8b0d7d 100644 --- a/app/models/jobs/mail_request_received.rb +++ b/app/models/jobs/mail_request_received.rb @@ -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 diff --git a/app/models/jobs/post_to_services.rb b/app/models/jobs/post_to_services.rb index b94e16cb595be449986bdf128c04e8d44a9ffd26..e29b1d609df1c15b7f3269a511d4bb32abb22e24 100644 --- a/app/models/jobs/post_to_services.rb +++ b/app/models/jobs/post_to_services.rb @@ -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) diff --git a/app/models/jobs/receive.rb b/app/models/jobs/receive.rb index a37953498d64bc387d89b2577faed649a5d79648..d653f175a751e7ce7801f3648370ac4671ff0c96 100644 --- a/app/models/jobs/receive.rb +++ b/app/models/jobs/receive.rb @@ -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) diff --git a/app/models/jobs/receive_local.rb b/app/models/jobs/receive_local.rb index ebe84bbdc414e65e8664d12ccace01c93cda902f..d976d629f6a4ee9d9d258e216697e4510bab13a1 100644 --- a/app/models/jobs/receive_local.rb +++ b/app/models/jobs/receive_local.rb @@ -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) diff --git a/app/models/jobs/receive_salmon.rb b/app/models/jobs/receive_salmon.rb index b529bd7bef099b6619a56dece094578d446ad2ba..7fad0cc3ccf93356a6aba67861e718b46ef893ad 100644 --- a/app/models/jobs/receive_salmon.rb +++ b/app/models/jobs/receive_salmon.rb @@ -1,5 +1,6 @@ module Jobs class ReceiveSalmon + extend ResqueJobLogging @queue = :receive_salmon def self.perform(user_id, xml) user = User.find(user_id) diff --git a/app/models/jobs/socket_webfinger.rb b/app/models/jobs/socket_webfinger.rb index edad564514e7c2c8365b019a5ed0ad79881a4ebb..633f7b8e68bbd633d0b47e33dc90795cb755205a 100644 --- a/app/models/jobs/socket_webfinger.rb +++ b/app/models/jobs/socket_webfinger.rb @@ -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, diff --git a/lib/resque_job_logging.rb b/lib/resque_job_logging.rb new file mode 100644 index 0000000000000000000000000000000000000000..fe6343139e3c0a3ac01258bfa6189df313aa8dd3 --- /dev/null +++ b/lib/resque_job_logging.rb @@ -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