小编Ken*_*Dev的帖子

没有Type的Rails多态关联(唯一id)

在我的应用程序中,每个对象(表)都有一个唯一的id.

现在,正因为如此,当使用看到id时,我知道它是什么对象类型,无论是用户还是酒店.

我想知道是否可以在多态关联中保存item_type的查找,在内存中使用id序列查找修补查找,从而节省DB和索引中的空间.

可以这样做吗?

我正在使用Rails 3.0.9,Ruby 1.9.2

activerecord ruby-on-rails-3

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

如何以正确的方式使缓存无效?

我有一个非常具体的缓存情况.我们使用多种解决方案进行缓存,我想知道在用户操作上使缓存无效的最佳解决方案是什么.

缓存是这样的

  • 第一层:CDN将整个页面缓存为已注销用户的HTML

  • 第二层:memcached中的完整页面缓存,用于注销用户我有第二层的原因是响应边缘,有时并非所有边缘都被缓存,所以我也想从缓存中"回答"边缘.

  • 第三层:缓存登录用户的HTML部分和数据库数据.

我的问题是我的失效过程现在非常基于第三层,我没有足够好地回答第二层和第一层.

我的问题是:什么是从完全没有与URL耦合的缓存键使完整URL上的缓存无效的最佳方法?例如,如果我有旅行计划,在旅行计划内有评论,我想在用户评论新评论时使整页旅行计划URL无效.

注释模型没有URL,"父"也没有URL,同样的注释也会在城市页面中显示,所以它完全是一个可重用的对象和部分.

caching ruby-on-rails

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

上帝停止resque工人耙

我在生产网站上使用Resque.

当我部署时,我希望GOD停止所有工作者然后重新启动它们,因为有时我们会更改类的代码并重新排队失败的作业.

问题是,当我做上帝停止resque,耙子实际上没有停止,工人仍然活着并使用旧代码,这为我创造了各种各样的问题.

即使我做"上帝终止",它也不会杀死工人.

现在,我正在使用shell脚本来杀死工作者,但由于我有多个服务器,所以在所有生产服务器上进行操作时,这几乎是一件痛苦的事.

这是我的上帝配置文件:

rails_env   = ENV['RAILS_ENV']  || "production"
rails_root  = ENV['RAILS_ROOT'] || "/mnt/data-store/html/gogobot/current"
num_workers = rails_env == 'production' ? 5 : 2

num_workers.times do |num|
  God.watch do |w|
    w.dir      = "#{rails_root}"
    w.name     = "resque-#{num}"
    w.group    = "resque"
    w.interval = 2.minutes
    w.env      = {"QUEUE"=>"duplicate_merging,facebook_wall_posts,generic,mailer,notifications,realtime,scoring_system,signup,social_graph_facebook,social_graph_foursquare,social_graph_twitter,user_info,user_score", "RAILS_ENV"=>rails_env, "PIDFILE" => "#{rails_root}/tmp/resque_#{w}.pid"}
    w.pid_file = "#{rails_root}/tmp/resque_#{w}.pid"
    w.start    = "cd #{rails_root}/ && rake environment resque:work QUEUE=duplicate_merging,facebook_wall_posts,generic,mailer,notifications,realtime,scoring_system,signup,social_graph_facebook,social_graph_foursquare,social_graph_twitter,user_info,user_score RAILS_ENV=#{rails_env}"
    w.log      = "#{rails_root}/log/resque_god.log"

    w.uid = 'root'
    w.gid = 'root'

    # restart if memory gets too high
    w.transition(:up, …
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails god resque

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

Mongo组合和/或在单个查询中

我试图找出查询mongo的最佳方法.我正在使用Mongoid和最新的mongo版本

我想要做的就是像这样查询

user_id => [数组的数组]和user_type =>"some_type"或者user_id => [数组的数组]和user_type =>"some_type"

我怎么能在Mongo/Mongoid中做到这一点?

mongodb mongoid mongoid3

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