使用Rails 5,在哪里创建一个后台作业方法,也可以由控制器使用?

时间:2017-07-30 00:55:04

标签: ruby-on-rails ruby-on-rails-5

我想创建一个方法来创建所有用户的排名列表(查询所有用户,计算他们的点数,然后将排名存储在数据库中)。

我需要在后台工作中发生这种情况......

我还需要能够通过Rails控制器方法运行此方法。

使用Rails 5,我应该将这个文件/任务/作业存储在我的Rails应用程序中,如何在我的后台作业任务之外的控制器中调用此方法?

由于

1 个答案:

答案 0 :(得分:1)

你基本上创建了一个像你一样的工作,然后你可以在控制器中调用

这直接来自Rails文档:

创造一份工作

bin/rails generate job guests_cleanup

定义你的工作

class GuestsCleanupJob < ApplicationJob
  queue_as :default

  def perform(*guests)
    # Do something later
  end
end

执行你的工作

GuestsCleanupJob.perform_later guest

您可以在rails docs中阅读更多内容: http://edgeguides.rubyonrails.org/active_job_basics.html