Ruby on rails 关于使用resque的几个问题

Ruby on rails 关于使用resque的几个问题,ruby-on-rails,resque,Ruby On Rails,Resque,我正在使用Resque运行后台进程。以下是我的背景流程的工作原理: 扫描ActiveRecord模型中的所有行 检查情况 如果满足条件,则更新行 这需要无限地继续下去 这就是我尝试使用Resque的方式,这是我的工人阶级: class ThumbnailMaker @queue = :thumbnail_queue def self.perform() MyObj.check_thumbnails(root_url) end end 我知道perform()方法将任务保存

我正在使用Resque运行后台进程。以下是我的背景流程的工作原理:

  • 扫描ActiveRecord模型中的所有行
  • 检查情况
  • 如果满足条件,则更新行
  • 这需要无限地继续下去

    这就是我尝试使用Resque的方式,这是我的工人阶级:

    class ThumbnailMaker
      @queue = :thumbnail_queue
    
      def self.perform()
        MyObj.check_thumbnails(root_url)
      end
    end
    
    我知道
    perform()
    方法将任务保存在队列中,并定期运行。在我的例子中,我需要一个扫描整个表的任务,这样它可以运行更长的时间。这是一个很好的解决方案,我的要求


    另一方面,我需要我的Rails应用程序的根url,这可以通过Rails控制器中的
    root\uURL
    轻松获得。但是我在我创建的类中需要它,你能建议我如何在这里获得它吗?

    Resque用于将要在后台运行的任务排队;队列中的每个项目运行一次,然后被删除。您想要的更像是一个计划任务——例如,一个或其他不时运行的脚本;这类东西有很多可用的方法(非常流行)或者只使用cron。关于这个主题,有很多问题。

    您可能希望尝试将代码放入rake任务中,并通过cron作业定期运行它。Resque/Redis对于您的需求来说似乎有点太多了


    <>您可以考虑通过控制器将类URL传入AS中,如果您正在调用您的类。否则,您可能需要将其设置为ENV设置,并相应地配置每个部署。

    有关
    根url
    问题,请参阅