目前在Rails 4上使用Resque。
我的问题是,使用后台作业创建记录是否有意义?有点像...
def create
@article = Article.new(articles_params)
if @article.valid?
background_job_here
else
render 'new'
end
end
我能在这件事上找到的唯一其他文件说这样做是没有意义的,但是,并没有解释原因。
阅读Heroku文档,他们建议将超过500毫秒的任何请求移到后台。在我的网站上创建文章也不例外,因为它可能需要超过1,000毫秒。如果不是后台工作,我应该如何设计这个? THX!
答案 0 :(得分:2)
在我看来,我不会将后台工作用于任何用户期望回复的工作。我认为这会扰乱请求/响应周期。例如,在您的情况下,用户期望对创建其文章的请求做出响应。 但是,只要响应不是必需的,就可以在后台作业中创建记录。例如,我确实有后台作业用于创建用户未请求的其他记录,但用于分析用户操作。 现在,创建文章需要500毫秒到1000毫秒才是一个问题。这是一个性能问题,后台工作无论如何都没有真正解决。我不知道您的应用程序的具体内容,但您可能希望查看缓存数据库(例如,使用redis)。