Это мой первый раз, используя ActiveJob, поэтому я все еще обволакиваю детали. У меня есть форма, которая при сохранении с помощью кнопки Execute
выполняет некоторые вызовы API, которые занимают очень много времени.Rails 4.2: активное задание после перенаправления
Я бы хотел, чтобы страница перенаправлялась на индекс без долгого ожидания. Вот мой контроллер создадим действие ..
campaigns_controller.rb
def create
@campaign = Campaign.new(campaign_params)
if @campaign.save
flash[:success] = "Campaign Successfully Saved!"
redirect_to campaigns_path
if params[:save_type] == 'Execute'
FolderPushJob.perform_later(@campaign)
end
else
flash[:error] = "There was a problem launching your Campaign."
redirect_to new_campaign_path
end
end
... и моя работа в это младенческой стадии
folder_push_job.rb
class FolderPushJob < ActiveJob::Base
queue_as :default
def perform(campaign)
...some api calls..
end
Каким будет лучший способ сделать эту работу?
UPDATE
Один вопрос, который я обнаружил, что у меня не было бэкенд для работы, так что я установил delayed_job
камень.
конфигурации/application.rb
config.active_job.queue_adapter = :delayed_job
Теперь он перенаправляет и не выполняет работу на всех.
Любая помощь очень ценится.
Заказ redirect_to не изменил ситуацию, все еще получая тот же результат. Работа существует независимо, она просто не запускается. – shroy