小编mit*_*val的帖子

Google地图未在签名的apk中显示

我知道这是一个常见问题,通常解决方案是生成一个单独的密钥以便发布.我已经完成了几次,我在开发人员控制台中的API密钥包含两个不同的SHA1指纹:一个用于从AndroidStudio调试,另一个用于从我自己的密钥库发布.我已使用相同的密钥库对应用进行了签名,并在控制台中启用了Google Maps Android API v2.但是地图活动仍然只显示左下角带有"Google"的白色屏幕.

有什么建议如何解决这个问题?

android google-maps release

29
推荐指数
2
解决办法
2万
查看次数

ActionCable - 无法在生产中升级到WebSocket

ActionCable在生产中不起作用.适用于开发,但不适用于生产.

在Ubuntu 14.04上使用Puma运行Nginx.我已经检查过redis-server已启动并正在运行.

Rails -v 5.0.0.1

production.log:

INFO -- : Started GET "/cable/"[non-WebSocket] for 178.213.184.193 at 2016-11-25 14:55:39 +0100
ERROR -- : Failed to upgrade to WebSocket (REQUEST_METHOD: GET, HTTP_CONNECTION: close, HTTP_UPGRADE: )
INFO -- : Finished "/cable/"[non-WebSocket] for 178.213.184.193 at 2016-11-25 14:55:39 +0100
Run Code Online (Sandbox Code Playgroud)

客户要求:

GET ws://mityakoval.com/cable HTTP/1.1
Host: mityakoval.com
Connection: Upgrade
Pragma: no-cache
Cache-Control: no-cache
Upgrade: websocket
Origin: http://mityakoval.com
Sec-WebSocket-Version: 13
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.98 Safari/537.36
Accept-Encoding: gzip, deflate, …
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails nginx ruby-on-rails-5 actioncable

16
推荐指数
4
解决办法
9277
查看次数

rails - 导出巨大的CSV文件会占用生产中的所有RAM

所以我的应用程序导出了一个11.5 MB的CSV文件,并且基本上使用了所有永远不会被释放的RAM.

CSV的数据来自数据库,在上面提到的情况下,整个数据都被导出.

我以下列方式使用Ruby 2.4.1标准CSV库:

export_helper.rb:

CSV.open('full_report.csv', 'wb', encoding: UTF-8) do |file|
  data = Model.scope1(param).scope2(param).includes(:model1, :model2)
  data.each do |item|
    file << [
      item.method1,
      item.method2,
      item.methid3
    ]
  end
  # repeat for other models - approx. 5 other similar loops
end
Run Code Online (Sandbox Code Playgroud)

然后在控制器中:

generator = ExportHelper::ReportGenerator.new
generator.full_report
respond_to do |format|
  format.csv do
    send_file(
      "#{Rails.root}/full_report.csv",
      filename: 'full_report.csv',
      type: :csv,
      disposition: :attachment
    )
  end
end
Run Code Online (Sandbox Code Playgroud)

在一次请求之后,puma进程加载了整个服务器RAM的55%并保持这样,直到最终完全耗尽内存.

例如,在本文中,生成一百万行75 MB CSV文件只需要1 MB RAM.但是没有涉及DB查询.

服务器有1015 MB RAM + 400 MB交换内存.

所以我的问题是:

  • 究竟消耗了如此多的记忆?是CSV生成还是与DB通信?
  • 我做错了什么,错过了内存泄漏?或者只是图书馆的运作方式?
  • 有没有办法释放内存而不重启puma工作者?

提前致谢!

csv ruby-on-rails ruby-on-rails-5

3
推荐指数
1
解决办法
496
查看次数