【发布时间】:2014-02-06 21:06:07
【问题描述】:
我来了!我正在使用 Ruby on Rails 构建一个平台。 我正在使用 Resque - Redis 来保存一些统计信息,但我发现了一些问题。
我必须保存应用程序每天执行操作的次数,例如,如果应用程序已运行,我必须保存该应用程序在当天运行。问题是一个应用程序可以被多个用户同时使用,现在问题来了。
unless stat = self.where(app_id: app_id, day: fire_at.to_date).first
stat = StatsApp.new(app_id: app_id, day: fire_at.to_date)
end
stat.increment(action)
逻辑:如果是一天中的第一次,则创建一个新的寄存器,如果不是,则增加这一天的动作。
有时,我可以看到一个应用程序被保存了两次,因为我有很多进程在队列中并且我有 10 个工作人员正在运行。
有人可以帮我避免这种情况吗?
PS:对不起我的英语。
【问题讨论】:
-
你用的是什么版本的rails?
标签: ruby-on-rails ruby redis resque worker