小编Jon*_*ers的帖子

Paperclip - 保存文件后运行方法?

我正在开发一个需要接受文件上传的项目.上传文件后,我正在进行一些处理 - 从文件中提取信息.我最终计划在后台工作程序中运行它,但它当前正在内联运行.

我已经尝试使用after_create和after_save来处理文件,但似乎我的方法在Paperclip的save方法之前运行 - 所以我的测试失败了"没有这样的文件或目录".

有没有办法尽早触发save方法,或者在文件保存到文件系统后以某种方式运行我的方法?

ruby-on-rails paperclip ruby-on-rails-4

9
推荐指数
1
解决办法
4180
查看次数

MongoDB高平均值 冲洗时间 - 写重

我使用的MongoDB包含大约400万个文档和大约5-6GB的数据库大小.该机器具有10GB的RAM,并且仅使用3.7GB左右的免费报告.该数据库用于视频游戏相关的阶梯(排名)网站,按地区分开.

这是一个相当重写的操作,但仍然会获得大量的读取操作.我们使用一个更新程序,每隔一两个小时查询外部源.然后,此更新程序处理记录并更新数据库上的文档.updater一次只处理一个区域(参见上一段),因此大约有33%的数据库被更新.

当更新程序运行时,并且在其运行的持续时间内,平均刷新时间增加到大约35-40秒,并且我们遇到其他查询的总体减速.更新程序在SEPARATE MACHINE上是RAN,并且只有在从第三方检索和处理所有数据时才查询MongoDB.

有些人建议放慢更新次数,或只更新已更改的玩家,但问题归结为排名.由于我们支持玩家之间的联系,我们需要预先计算排名 - 所以如果只有少数用户实际改变了排名,我们仍然需要相应地更新其余的用户排名.至少,MySQL就是这种情况 - 我不确定MongoDB是否有一个很好的解决方案,可以在支持关系的同时对~800K-> 120万个文档进行排名.

我的问题是:我们如何才能改善我们正在经历的同花顺和减速?为什么它如此高涨?是否会禁用日记功能(以减轻i/o的负担)帮助,因为数据丢失不是我担心的事情,因为数据库经常更新?

服务器状态:http://pastebin.com/w1ETfPWs

mongodb

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