我有一个Sinatra应用程序设置,其中大多数逻辑在各种类中执行,并且post/ getroutes实例化这些类并调用它们的方法.
我正在考虑将post/ getroute处理程序放在类本身内是否是一个更好的结构.
无论如何,我想知道是否有可能.例如:
class Example
def say_hello
"Hello"
end
get '/hello' do
@message = say_hello
end
end
Run Code Online (Sandbox Code Playgroud)
如果不修改上述内容,Sinatra会说对象say_hello上没有方法SinatraApplication.
这是有道理的.但是对于这个问题,有哪些首选的工作方法呢?
在针对Heroku上托管的应用程序执行负载测试后,我发现大多数数据库密集型请求需要50-200ms,具体取决于负载.无论负载如何,它都不会变慢.但是,看似随机,请求将彻底超时(30秒或更长时间).
在Heroku上,为什么一个性能相对较高的查询/请求可以在10次中完美地工作8次,并且当负载增加时,彻底超时为10次中的2次?
如果这对于Heroku本身来说似乎是一个问题,我想首先回答一个问题,即"坏代码"是否会以某种方式导致这个问题 - 或者它是否显然是一个问题.
更多信息:
多个Dynos Cedar Stack Dedicated Heroku DB(16个连接,1.7 GB RAM,1个comp.单元)Rails 3.0.7
提前致谢.