ruby on Rails 3 在生产模式下不会调用 Rake 任务

发布于 11-19 01:04 字数 530 浏览 2 评论 0原文

从控制器:-

call_rake :parse_venue, :venue_list_id => venue_list.id


def call_rake(task, options = {})
   options[:rails_env] ||= Rails.env
   args = options.map { |n, v| "#{n.to_s.upcase}='#{v}'" }
   system "rake #{task} #{args.join(' ')} --trace 2>&1 >> #{Rails.root}/log/rake.log &"
end 

在开发模式下,此 rake 任务被触发。但在生产模式下,它不会被触发。

PS:- 灵感来自rake in后台,railscast。生产模式下 rake.log 文件中没有任何内容

From a controller:-

call_rake :parse_venue, :venue_list_id => venue_list.id


def call_rake(task, options = {})
   options[:rails_env] ||= Rails.env
   args = options.map { |n, v| "#{n.to_s.upcase}='#{v}'" }
   system "rake #{task} #{args.join(' ')} --trace 2>&1 >> #{Rails.root}/log/rake.log &"
end 

In development mode this rake task is triggered.. But in case of production mode its not triggered.

PS:- Inspired from rake in background, railscast. There is nothing in rake.log file in production mode

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

剩一世无双2024-11-26 01:04:34

尝试以下系统调用:

system "#{args.join(' ')} rake #{task} --trace 2>&1 >> #{Rails.root}/log/rake.log &"

Try the following system call:

system "#{args.join(' ')} rake #{task} --trace 2>&1 >> #{Rails.root}/log/rake.log &"
戏剧牡丹亭2024-11-26 01:04:34

验证“rake”是否位于运行 Web 服务器/应用程序服务器的用户的 $PATH 中

Verify that "rake" is in the $PATH of the user running your web server / app server

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文