0

我试图弄清楚如何让 SuckerPunch 中的后台作业开始工作,而无需加载索引页面。

现在,我要做的是:

$ rails server #在 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 请求。

4

1 回答 1

0

抱歉不是很具体,但我认为所有信息都在傻瓜拳击宝石自述文件中。这将取决于您的配置,因此请阅读。

例如:(来自 github 仓库)

活跃的工作

在 Rails 4.2 中添加了 Sucker Punch 作为 Active Job 适配器。请参阅配置和实施指南。

将 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
于 2015-12-30T18:28:19.957 回答