和 #11 楼 一样
#11 楼 @wangping 我遇到的坑主要集中在,数据库连接池的管理,缓存,线程安全。只要这 3 个解决了,用 Rack App 跑 Grape 其实也没那么吓人。
我当时是参考 https://github.com/intridea/grape/wiki 的例子。
主要是
https://github.com/dblock/grape-on-rack https://github.com/kunovsky/Grape_on_rack_sqlite3 https://github.com/cutalion/grape-api-example
这几个可以看看。
#4 楼 @wangping 我们的项目,第一版本用 Rails 3 写的 API,撑到了 70W PV。感觉一点问题都没有。后来看论坛的大神都说 Grape 霸气侧漏,Rails 太重了。我脑袋一热,API V2 就用 Rack App 配合 Grape 写的,没错,我没有用 Sinatra 之类的框架。然后就,呵呵。。。各种坑。用了两台服务器,都撑不到 500 RPM。
坚持了 2 个月,实在挺不住了。摔啊!!!然后花了 2 天时间,改回用 Rails 跑 Grape,现在两台服务器撑 2000 RPM 小意思。
所以,如果你不想给自己找麻烦,Rails 配合 Grape 挺好的。
PS: 服务器是阿里云低配,双核 CPU 内存 2.5G。
收到,马上升级
确实值得加精
#15 楼 @QueXuQ 因为你们的 grape 的版本不同。ruby-china 用的是 0.1.5 的版本。参见 https://github.com/intridea/grape/pull/285 ,在 0.2.X 版本之后 error_format
已经删除了。
#6 楼 @fresh_fish 不会
我倒觉得分别捞出 Sale 的卖出的总价 和 Meal 的卖出的总价,然后用 ruby 计算总价性能更好点。
还缺一个反向代理服务器,另外负载均衡什么的也需要啊
#2 楼 @dddd1919 我们也用 #6 楼 @qichunren 的方式。还是用 key 的方法安全性更高,并且 mina 部署也更顺利和方便。
灵活的 switch
Swift 中的 switch 支持各种各样的比较操作:
let vegetable = "red pepper"
switch vegetable {
case "celery":
let vegetableComment = "Add some raisins and make ants on a log."
case "cucumber", "watercress":
let vegetableComment = "That would make a good tea sandwich."
case let x where x.hasSuffix("pepper"):
let vegetableComment = "Is it a spicy \(x)?"
default:
let vegetableComment = "Everything tastes good in soup."
}
其中的 case let x where x.hasSuffix("pepper"):
ruby 怎么实现?
#15 楼 @wppurking pumactl -P /***/puma.pid restart
或者 pumactl -F /***/puma.rb restart
都无法正确重启
当然愿意为知识付费,一年买书,买视频网站会员得多少钱。
但是对于自己不需要或者不感兴趣的知识,就不会。