Fixes, workers now output to sidekiq, not rails

This commit is contained in:
Yuki 2015-07-27 12:42:12 +05:30
parent 92bbfef2df
commit 26a517a650
4 changed files with 12 additions and 9 deletions

View File

@ -59,6 +59,7 @@ class Ajax::QuestionController < ApplicationController
end end
elsif params[:rcpt].start_with? 'grp:' elsif params[:rcpt].start_with? 'grp:'
unless current_user.nil? unless current_user.nil?
begin
current_user.groups.find_by_name!(params[:rcpt].sub 'grp:', '') current_user.groups.find_by_name!(params[:rcpt].sub 'grp:', '')
QuestionWorker.perform_async params[:rcpt], current_user.id, question.id QuestionWorker.perform_async params[:rcpt], current_user.id, question.id
rescue ActiveRecord::RecordNotFound rescue ActiveRecord::RecordNotFound

View File

@ -8,7 +8,7 @@ class DeletionWorker
begin begin
User.find(resource_id).destroy! User.find(resource_id).destroy!
rescue => e rescue => e
Rails.logger.error "failed to delete user: #{e.message}" logger.error "failed to delete user: #{e.message}"
end end
end end
end end

View File

@ -3,21 +3,23 @@ class QuestionWorker
sidekiq_options queue: :question, retry: false sidekiq_options queue: :question, retry: false
# @param resource_id [Integer] user id passed from Devise # @param rcpt [Integer] string recipient
# @param user_id [Integer] user id passed from Devise
# @param question_id [Integer] newly created question id
def perform(rcpt, user_id, question_id) def perform(rcpt, user_id, question_id)
begin begin
user = User.find(user_id) user = User.find(user_id)
if params[:rcpt].start_with? 'grp:' if rcpt == 'followers'
user.followers.each do |f| user.followers.each do |f|
Inbox.create!(user_id: fid, question_id: question_id, new: true) Inbox.create(user_id: fid, question_id: question_id, new: true)
end end
else elsif rcpt.start_with? 'grp:'
current_user.groups.find_by_name!(params[:rcpt].sub 'grp:', '').members.each do |m| current_user.groups.find_by_name!(rcpt.sub 'grp:', '').members.each do |m|
Inbox.create!(user_id: m.user.id, question_id: question.id, new: true) Inbox.create(user_id: m.user.id, question_id: question.id, new: true)
end end
end end
rescue => e rescue => e
Rails.logger.error "failed to answer question: #{e.message}" logger.error "failed to ask question: #{e.message}"
end end
end end
end end

View File

@ -11,7 +11,7 @@ class ShareWorker
begin begin
service.post(Answer.find(answer_id)) if services.include? service.provider service.post(Answer.find(answer_id)) if services.include? service.provider
rescue => e rescue => e
Rails.logger.error "failed to post answer #{answer_id} to #{service.provider} for user #{user_id}: #{e.message}" logger.error "failed to post answer #{answer_id} to #{service.provider} for user #{user_id}: #{e.message}"
end end
end end
end end