【发布时间】:2015-09-21 18:00:34
【问题描述】:
这是我第一次使用 ActiveJob,所以我还在纠结细节。我有一个表单,当通过Execute 按钮保存时,它会执行一些需要很长时间的 API 调用。
我希望页面无需长时间等待即可重定向到索引。这是我的控制器的创建操作..
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
完成这项工作的最佳方法是什么?
更新
我发现的一个问题是我没有 Job 的后端,所以我安装了 delayed_job gem。
config/application.rb
config.active_job.queue_adapter = :delayed_job
现在它重定向并且根本不运行作业。
非常感谢任何帮助。
【问题讨论】:
标签: ruby-on-rails ruby ruby-on-rails-4 ruby-on-rails-4.2 rails-activejob