我有一个类(/lib/updater.rb
)来对数据库进行大量更新(调用外部服务器,计算......)。通常,此任务由服务器的cron(rake /lib/tasks/launch_updater.rake
启动updater.rb
)调用,但我也希望有机会从客户端手动启动它。
此时,用户可以从客户端单击按钮并以这种方式启动它:
# the controller
Thread.new {
Updater.start
}
这是一个很好的解决方案,还是最好直接从rake任务启动?
# something like this from the controller
Rake::Task[params[:task]].reenable
Rake::Task[params[:task]].invoke
任务应该是无阻塞的(用户应该在应用程序上正常导航而不等待任务结束)。
哪个更好,为什么?
答案 0 :(得分:0)
在我的问题上做了一点我发现了以下注意事项: