我在RoR4 Heroku应用程序上配置Puma(多线程+多核服务器)需要一些帮助.Heroku上的文档并不是最新的.我遵循了这个:配置的并发和数据库连接,没有提到集群的配置,所以我不得不同时使用这两种类型(线程和多核).
我目前的配置:
./Procfile
web: bundle exec puma -p $PORT -C config/puma.rb
Run Code Online (Sandbox Code Playgroud)
./config/puma.rb
environment production
threads 0,16
workers 4
preload_app!
on_worker_boot do
ActiveRecord::Base.connection_pool.disconnect!
ActiveSupport.on_load(:active_record) do
config = Rails.application.config.database_configuration[Rails.env]
config['reaping_frequency'] = ENV['DB_REAP_FREQ'] || 10 # seconds
config['pool'] = ENV['DB_POOL'] || 5
ActiveRecord::Base.establish_connection
end
end
Run Code Online (Sandbox Code Playgroud)
问题:
a)我是否需要像Unicorn一样的before_fork/after_fork配置,因为群集工作者是分叉的?
b)如何根据我的应用程序调整我的线程数 - 将它放下的原因是什么?/在什么情况下它会有所作为?是不是已经优化了0:16?
c)Heroku数据库允许500个连接.根据线程,工作线程和动态计数,DB_POOL的值是多少? - 并行工作时,每个dyno的每个工作线程的每个线程是否都需要唯一的DB连接?
一般来说:我的配置应该如何看待并发性和性能?
当多个物体在同一平面上重叠时,它们开始闪烁.如何告诉渲染器将其中一个对象放在前面?
我尝试使用.renderDepth,但它只能部分工作 - 请参见此处的示例:
http ://liveweave.com/ahTdFQ
这两个框具有相同的大小,并且按预期工作.我可以通过设置更改哪些框可见.renderDepth.但是,如果其中一个盒子稍微小一些(例如40,50,50),则接触层会闪烁,渲染深度不再起作用.
如何解决这个问题?
我目前正在尝试与SailsJS框架一起进入NodeJS.我想在服务器端使用藏汉CoffeeScript的,但将所有文件后config/*.js,以config/*.coffee正确地js2coffee,我在尝试启动应用程序时出现以下错误:
配置/ 400.coffee
SyntaxError: Unexpected token ILLEGAL
Run Code Online (Sandbox Code Playgroud)
指向文件中的第一个字符,这是咖啡评论的标签.因此,似乎该应用程序不会将该文件识别为coffeescript,而是搜索标准js.
我尝试安装包coffee-script并要求它
app.js
require('coffee-script');
require('sails').lift(require('optimist').argv);
Run Code Online (Sandbox Code Playgroud)
但它没有帮助.
如果我删除400.coffee,则错误出现在下一个文件中403.coffee.
我究竟做错了什么?配置文件中是不允许使用coffeescript还是我遗漏了什么?
coffeescript ×1
heroku ×1
javascript ×1
node.js ×1
postgresql ×1
puma ×1
sails.js ×1
three.js ×1
unicorn ×1