Replaced delayed_job with resque. See README_DEVEL
This commit is contained in:
parent
344abf5a26
commit
2c0fe08be6
18 changed files with 82 additions and 74 deletions
43
app/workers/user_notifier.rb
Normal file
43
app/workers/user_notifier.rb
Normal file
|
|
@ -0,0 +1,43 @@
|
|||
# This plain ruby class should handle all user notifications, called by various models
|
||||
class UserNotifier
|
||||
@queue = :foodsoft_notifier
|
||||
|
||||
# Resque style method to perform every class method defined here
|
||||
def self.perform(foodcoop, method_name, *args)
|
||||
FoodsoftConfig.select_foodcoop(foodcoop)
|
||||
self.send method_name, args
|
||||
end
|
||||
|
||||
def self.message_deliver(args)
|
||||
message_id = args.first
|
||||
Message.find(message_id).deliver
|
||||
end
|
||||
|
||||
def self.finished_order(args)
|
||||
order_id = args.first
|
||||
Order.find(order_id).group_orders.each do |group_order|
|
||||
group_order.ordergroup.users.each do |user|
|
||||
begin
|
||||
Mailer.order_result(user, group_order).deliver if user.settings["notify.orderFinished"] == '1'
|
||||
rescue
|
||||
Rails.logger.warn "Can't deliver mail to #{user.email}"
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
# If this order group's account balance is made negative by the given/last transaction,
|
||||
# a message is sent to all users who have enabled notification.
|
||||
def self.negative_balance(args)
|
||||
ordergroup_id, transaction_id = args
|
||||
transaction = FinancialTransaction.find transaction_id
|
||||
|
||||
Ordergroup.find(ordergroup_id).users.each do |user|
|
||||
begin
|
||||
Mailer.negative_balance(user, transaction).deliver if user.settings["notify.negativeBalance"] == '1'
|
||||
rescue
|
||||
Rails.logger.warn "Can't deliver mail to #{user.email}"
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
Loading…
Add table
Add a link
Reference in a new issue