国内:以前用过 美洽 ,支持 Html5、Native SDK 等多重接入方式,也还不错。
国外:推荐 uservoice。
外部请求没有加超时是导致 sidekiq frozen 的最常见原因
https://github.com/mperham/sidekiq/wiki/Problems-and-Troubleshooting#user-content-frozen-processes
解决方法如下
测试自动赞 :plus1:
我们以前是这样干的:
可以缓存,但是不建议这么干。
但是数据量大时(比如几千个 Cate 的数据),一堆 ActiveRedocrd 对象的 序列化/反序列化 非常的耗时,不划算。
自己做个测试试试。
搞大型活动有场地了,赞!
一个系统有 100 万用户,日活应该只有 1-5 万左右,95% 以上是冷数据。
雪洁同学的系统是用来监测 5 万个设备,差不多 100% 都是热数据。
场景不太一样。
学洁同学的产品如果用户量超过一百万,如果还这样架构的话,就可以服众了。
否则有阳春白雪之嫌。
你的代码是 IO-bounded,还是 cpu-bound?
如果 io 为主的话,可以利用多核。因为 io 时,ruby 会释放 GIL,可以并行。
看完原帖,我觉得删帖原因是「一大群强迫症患者对创新式空格排版的忍无可忍」,哈哈。
已报名。
在医院工作的时候,麻醉医生特别讨厌被称为「麻醉师」; 来到互联网公司后发现,设计师特别讨厌被称为 UI 或美工;
好脆弱的自尊心,哈哈。
照片真漂亮,工作环境如诗如画。
赞这句话:
无数人在这里纠结怎么做一个博客,怎么部署一个博客,其实这些形式都不重要,写才最重要,看看大牛的博客就懂我想说什么了
推荐作者用 Github Pages 搭建 blog,最好不要折腾样式,纯属浪费时间。
Hi Johnson,感谢你抽出时间组织上海的 ruby tuesday。
由于最近娃要出生,没空参加活动,无法和你面谈。在以往的聚会中我们会提前准备:
此外聚会时的大体流程
供参考。
我选了重大决策按钮,哈哈。
顺便请教,oneapm 比 newrelic 有啥优势?
require 'socket'
# step1 create
socket = Socket.new(:INET, :STREAM)
# step2 bind(skip)
# step3 connect
remote_addr = Socket.pack_sockaddr_in(80, 'google.com')
socket.connect(remote_addr)
while data = socket.readpartial(one_hundred_kb) do
puts data
end
# step4 close
socket.close
http://stackoverflow.com/questions/8649860/ruby-tcpsocket-http-request
[book] Working with TCP Sockets
大便时遇到这个问题,顺便回一下。
socket.read
是个 block 的操作,如果 server 没有返回 eof,客户端不会打印出任何东西。
所以应该使用 partial read 来替代 read。
感谢楼主的精彩分享,这篇文章确实极其精彩,我刚好这两天也在反复的读,特此补充,哈哈。
这个地方翻译欠妥。查找常量时 Module.nesting 并不是当前的代码定义的 class。
Ruby 有三种 context
self 当前对象
definee 当前类
lexical scope
作者在此处指的是第三种 context:lexical scope。lexical scope 只和 class 和 module 这两个 keyword 有关。
所以作者最后的结论是两个:
Module.nesting 取决于 lexical scope
lexical scope 只取决于 class、module 两个关键字。(和 class_eval、instance_eval 无关)
原文用的 attach Object,不是 Open Object,此处确实很难翻译。
class C end
在顶级定义一个类 C 时,是把 C 这个常量 attach 到
Object
这个 Rclass 的 constant table 中。
花里胡哨的感觉。
请教一个问题
require 'socket'
local_socket = Socket.new(:INET, :STREAM)
local_addr = Socket.pack_sockaddr_in(4481, '0.0.0.0')
local_socket.bind(local_addr)
server.listen(Socket::SOMAXCONN)
# accept a connection
connection, remote_addr = server.accept
建立连接后,connection 是一个 Socket 对象,instance_variable 是空的,local_address/remote_address 是保存在哪里呢?
> connection.instance_variables
> []
> p connection.local_address
Local address: #<Addrinfo: 0.0.0.0:4481 TCP>
> p connection.remote_address
Remote address #<Addrinfo: 59.102.12.1:4481 TCP>
同问,
为啥不考虑 jruby?
如果用 golang 重写的话,所有的业务逻辑是不是都要重新实现一遍?而且要和 Rails 中的业务逻辑始终保持一致,维护的工作量是不是有点大?
哈哈,我来抢沙发。
这和标题不符啊,哈哈。