Moved message delivering into background process.

This commit is contained in:
benni 2012-08-24 14:33:45 +02:00
parent af3875d46b
commit edadb7d8d1
3 changed files with 6 additions and 19 deletions

View file

@ -21,6 +21,10 @@ class Message < ActiveRecord::Base
before_validation :clean_up_recipient_ids, :on => :create
def self.deliver(message_id)
find(message_id).deliver
end
def clean_up_recipient_ids
self.recipients_ids = recipients_ids.uniq.reject { |id| id.blank? } unless recipients_ids.nil?
self.recipients_ids = User.all.collect(&:id) if sent_to_all == "1"
@ -73,20 +77,12 @@ class Message < ActiveRecord::Base
begin
Mailer.foodsoft_message(self, user).deliver
rescue
logger.warn "Deliver failed for #{user.nick}: #{user.email}"
Rails.logger.warn "Deliver failed for #{user.nick}: #{user.email}"
end
end
end
update_attribute(:email_state, 1)
end
# Sends all pending messages that are to be send as emails.
def self.send_emails
messages = Message.pending
for message in messages
message.deliver
end
end
end