作者logooo77 (肉狗七十七)
看板Ruby
标题Re: [问题] HEROKU 如何确定APPLICATION ERROR的原因
时间Fri Nov 4 02:01:25 2011
※ 引述《BM0108 (冲)》之铭言:
: 环境:
: Ruby 1.8.7 Rails 3.1.0
: 状况:
: 我用RAILS写了一个转ptt网宣的web app,并架在HEROKU上(连结请见签名档)
: 这支app执行每个request的时间要视转录目标的数量而定
: 正常情况下,20秒内都能解决
: (登入ptt约3秒,平均转每个版也约3秒,一次最多只能转3个版,3*4=12,20秒算高估)
: 可是,不时有user和我反应说转到一半会看到heroku显示application error的页面
: 我自己查logs,似乎都说是timeout(我觉得免费版的log根本没提供啥资讯@@)
: HEROKU每个request的处理上限是30秒,换言之,正常情况下我的code应该不会timeout
: 我朋友和我说应该是concurrency的问题,因为我没有付钱买dynos,
: 所以一次只能有一个user;同时有太多user,就会变成这样
: 不过,虽然正常情况下不会timeout,而且我的code也有做防timeout的机制,
: 但我也不敢确定没有其他我自己也不知道的问题导致code本身就timeout了
: 我现在想要问的是:
: 到底要如何确定是不是dyno不够导致的问题?
: 有请前辈指教了,感谢!
http://devcenter.heroku.com/articles/request-timeout
Heroku 有提到他们所谓理想的反应时间应该是在多少
所以我相信他们希望客人写的程式是有效率的
而且他们计较的也不是连线时间而已
还包含了网路相关API的发送、产生图片文件 及 大量的运算跟大负载
时间一超过就是错误
我想,你还是在台湾这里弄个机器 或弄点什麽的
让你的网站去处理使用者的需要,准备好後,透过程式下达指令给这些机器或程式去分摊
告知使用者需要一点时间,待将事情做好後,另外告知(也就是将结果送回网站)
--
88888b.d88b. 8888b. .d8888b 888 .d88b. 888 888 .d88b.
888 "888 "88b "88b d88P" 888 d88""88b 888 888 d8P Y8b
888 888 888 .d888888 888 888 888 888 Y88 88P 88888888
888 888 888 888 888 Y88b. 888 Y88..88P Y8bd8P Y8b.
888 888 888 "Y888888 "Y8888P 888 "Y88P" Y88P "Y8888
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 118.171.124.62
1F:推 BM0108:嗯嗯 之前都没想到要这样做@@ 万分感谢您的建议! 11/04 15:09