好像没说
Nginx 配置
最多还不够两万,没诚意
避免 count
论坛搜索,有相关讨论
utf8mb4, MySQL 5.6 以上
目前唯一的问题就是 Chrome 浏览器无法直接显示
看 Ruby China 的 app/models/photo.rb
其他应用如果有连接管理不当,用完了没有正确关闭,会导致 MySQL 的连接数过高(占着茅坑不拉屎)
其他应用是什么? 在数据库连接的管理上面,Rails 内部实现了许多细节的
这很好理解啊 这种域名上面有个别所谓的违规内容,为了省事,干脆直接封了。
URL GET 有长度限制,这类情况你需要 POST
#39 楼 @hz_qiuyuanxin 每分钟 1000 个请求的日志写进去
config/initializes/rpm.rb
$rpm_logger = Logger.new(Rails.root.join("log/rpm.log"))
$rpm_logger.formatter = proc do |severity, datetime, progname, msg|
msg << "\n"
msg
end
$rpm_server_ip = Socket.gethostname
ActiveSupport::Notifications.subscribe('process_action.grape') do |*args|
event = ActiveSupport::Notifications::Event.new(*args)
info = {
time: Time.now.to_i.to_s,
server: $rpm_server_ip,
path: event.payload[:path],
runtime: event.duration,
status: event.payload[:status]
}
info[:db_runtime] = event.payload[:db_runtime] if event.payload[:db_runtime]
info[:faraday_runtime] = event.payload[:faraday_runtime] if event.payload[:faraday_runtime]
Thread.current[:faraday_runtime] = nil
$rpm_logger.info(info.to_json)
end
ActiveSupport::Notifications.subscribe('request.faraday') do |name, start, ending, transaction_id, payload|
event = ActiveSupport::Notifications::Event.new(name, start, ending, transaction_id, payload)
Rails.logger.info " Faraday #{event.payload[:method]} #{event.payload[:url]} (#{event.duration}ms)"
Thread.current[:faraday_runtime] ||= 0
Thread.current[:faraday_runtime] += event.duration
payload[:faraday_runtime] = event.duration
end
所有的请求日志会以 JSON 格式写到 log/rpm.log 里面,然后用 Fluentd 去关注 rpm.log 最后用 fluent-plugin-influxdb 写到 InfluxDB 里面。
IO 请求都是需要设置超时时间的
Ruby China 目前那个 access_token 没做好...
什么错?
@sunfmin 搞的
用 Linux 的 Crontab 调用 rake 任务