【问题标题】:Rails Background Job for Creating Records?用于创建记录的 Rails 后台作业?
【发布时间】:2016-03-27 01:24:47
【问题描述】:

目前在带有 Resque 的 Rails 4 上。

我的问题是,使用后台作业创建记录是否有意义?比如……

def create 
  @article = Article.new(articles_params)
  if @article.valid?
      background_job_here
  else
      render 'new'
  end
end

我能找到的关于这个问题的唯一其他文档说这样做没有意义,但是,并没有解释原因。

阅读 Heroku 文档后,他们建议将任何超过 500 毫秒的请求移至后台。在我的网站上创建一篇文章也不例外,因为它可能需要超过 1,000 毫秒。如果不是后台工作,我应该如何构建它?谢谢!

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-4 backgroundworker background-process resque


    【解决方案1】:

    以我的拙见,我不会将后台作业用于用户期望得到响应的任何事情。我认为这会扰乱请求/响应周期。例如,在您的情况下,用户期望对创建他的文章的请求作出响应。 但是,只要响应不是强制性的,就可以在后台作业中创建记录。例如,我确实有一些后台作业来创建用户未请求但用于分析用户操作的其他记录。 现在,创建一篇文章需要 500ms 到 1000ms 绝对是个问题。这是一个后台作业并没有真正解决的性能问题。我不知道您的应用程序的具体细节是什么,但您可能想考虑缓存您的数据库(例如使用 redis)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-02
      • 1970-01-01
      相关资源
      最近更新 更多