ruby-on-rails - 如何修复 Rails 中的执行过期错误?

标签 ruby-on-rails ruby-on-rails-3 heroku unicorn

我在 Heroku 上有一个带有 Unicorn 服务器的 Rails 网站。我偶尔会收到类似以下错误的通知:

ActionView::Template::Error: execution expired
(in /app/app/assets/javascripts/application.js)



这是我的 application.js 文件:
//= require jquery
//= require jquery_ujs
//= require bootstrap
//= require_tree
//= require jquery.qtip.js

错误日志没有清楚地显示导致此类错误的原因。例如,最近的日志如下所示。什么可能导致此类错误,或者我应该如何诊断它们?

unicorn 配置:
# config/unicorn.rb
worker_processes Integer(ENV["WEB_CONCURRENCY"] || 3)
timeout 15
preload_app true
#...

捕捉超时:
#timeout.rb
Rack::Timeout.timeout = 13

日志:

app/web.2:开始获取“/articles/20”...
heroku/web.1:骑自行车
heroku/web.1:使用 SIGTERM 停止所有进程
app/web.1:Unicorn worker 拦截 TERM 并且什么都不做。等待 master 发送 QUIT Unicorn worker 拦截 TERM 并且什么都不做。等待 master 发送 QUIT
app/web.1:Unicorn worker 拦截 TERM 并且什么都不做。等待 master 发送 QUIT
app/web.1:Unicorn master 拦截 TERM 并发送 QUIT 代替
heroku/router: at=info method=GET path=/articles/20 host=... dyno=web.2 connect=1ms service=79ms status=200 bytes=8123
app/web.1: I, INFO -- : 收获#worker=0
app/web.1: I, INFO -- : 收获#worker=2
app/web.1: I, INFO -- : 收获#worker=1
app/web.1: I, INFO -- : master 完成
heroku/web.1:错误 R12(退出超时)-> 至少有一个进程未能在 SIGTERM 的 10 秒内退出
heroku/web.1:使用 SIGKILL 停止剩余进程
heroku/web.1:进程退出,状态为 137
heroku/web.1:状态从上变为下
heroku/web.1:状态从下变为开始
heroku/web.1:使用命令`bundle exec unicorn -p 14131 -c ./config/unicorn.rb` 启动进程

最佳答案

如果这实际上是由渲染 application.js 引起的,您可能设法关闭了 Assets 预编译,否则该文件将被预编译并且只是一个几乎不会超时的文件。

检查 Assets 预编译并重新启用它,如果它实际上被禁用。

如果不是这种情况,文件可能非常大,您应该重新考虑是否实际使用了 javascripts Assets 文件夹中的所有内容。

关于ruby-on-rails - 如何修复 Rails 中的执行过期错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19504452/

相关文章:

ruby-on-rails - rails : How to pass data to Bash Script

ruby-on-rails - Ruby on Rails与Oracle Objects(以及一般面向对象的数据持久性)

ruby-on-rails - Rails 3教程第11章 "Validation failed: Email has already been taken"错误

mysql - ActiveRecord3 死锁重试

python - 在不使用浏览器的情况下通过桌面应用程序完成 Spotify 授权代码流程

java - 在 Heroku 上扩展 Spring

node.js - Mongodb atlas + node.js 在本地工作,但在推送到 Heroku 时停止

ruby-on-rails - 我应该如何将 rails 和 simple_form 用于嵌套资源?

mysql - 如何将 GET 参数从自定义日期格式转换为数据库日期格式?

ruby-on-rails - 如何对按日期时间排序的记录进行排序?