В моем приложении есть сделки, в которых заказы выполняются после достижения минимальной суммы заказа.В настоящее время я установил заказы, чтобы эти заказы размещались сразу после отправки заказа, и все это работает.
Теперь мне нужно изменить процесс так, чтобы заказы обрабатывались после выполнения минимального номера заказа для сделки.
Должен ли я использовать delayed_job для этого или, может быть, процесс cron?
Вот процесс, о котором я подумал.
Задержка заказов до тех пор, пока не будет достигнут минимум заказов
- Поиск сделок, которые все еще активны
- Затем найдите сделки, для которых выполнено минимальное количество заказов
- Для заказов на каждую сделку выполните циклическое выполнение и обработайте захват для каждого заказа.
- Отправить подтверждение заказа.
Мой метод покупки модели заказа
def purchase
response = OrderTransaction.gateway.purchase(order_amount, credit_card, options)
transactions.create!(:action => "purchase", :amount => order_amount, :response => response)
response.success?
end
Мой метод создания в контроллере моих заказов.
def create
@member = current_member
@order_deal = Deal.find(params[:deal_id])
@order = @order_deal.orders.build(params[:order])
@order.member_id = current_member.id
@order.ip_address = request.remote_ip
@deal = @order_deal
if @order.save
if @order.purchase
MessageMailer.order_receipt(@order, @member).deliver
render :action => "success"
flash[:notice] = "Successfully created order."
else
render :action => "new"
end
else
render :action => 'new'
end
end
IЯ запускаю это приложение на Heroku.Любая помощь приветствуется.