Rails Sucker Punch - 如何在不访问主页的情况下开始工作?

时间:2015-12-30 18:16:39

标签: ruby-on-rails ruby jobs job-scheduling sucker-punch

我正在试图找出如何在SuckerPunch中启动后台作业,而无需加载索引页。

现在,我所做的是:

  

$ rails server #start localhost:3000

上的服务器      

然后我转到我的浏览器URL并输入localhost:3000

这会触发我的SuckerPunch作业,然后它们就会开始运行。

我的application_controller.rb

class ApplicationController < ActionController::Base

    # Prevent CSRF attacks by raising an exception.
    # For APIs, you may want to use :null_session instead.
    protect_from_forgery with: :exception

    # call job on application start
    TestEchoJob.new.async.perform("Download CMS Data")
    GetImages.new.async.perform
    DeleteImages.new.async.perform
    SendLead.new.async.perform

end

这就是我调用工作的地方。 我想也许还有另外一个地方我可以把它们放到我想要的地方。

在服务器启动时启动作业 - 而不是http请求。

1 个答案:

答案 0 :(得分:0)

对不起,不是非常具体,但我认为所有的信息都在sucker punch gem readme中。这取决于您的配置,请阅读。

例如:(来自github repo)

有效作业

Sucker Punch已添加为Rails 4.2中的活动作业适配器。请参阅指南以了解配置和实施。

将Sucker Punch添加到您的Gemfile:

gem 'sucker_punch'

然后将后端配置为使用Sucker Punch:

# config/initializers/sucker_punch.rb
Rails.application.configure do
  config.active_job.queue_adapter = :sucker_punch
end