具体的には、1日1つのイベントを毎日同時にスケジュールできるスケジュールモデルがあります。このような:
class Schedule
include Mongoid::Document
include Mongoid::Timestamps
field :hour, :type => Integer, :default => 8
field :ampm, :type => String, :default => "am"
field :time_zone, :type => String, :default => "Eastern Time (US & Canada)"
field :monday, :type => Boolean, :default => true
field :wednesday, :type => Boolean, :default => true
field :friday, :type => Boolean, :default => true
field :tuesday, :type => Boolean, :default => false
field :thursday, :type => Boolean, :default => false
field :saturday, :type => Boolean, :default => false
field :sunday, :type => Boolean, :default => false
embedded_in :user
end
1時間ごとに実行されるレーキタスクがあり、「今」のイベントを必要とするすべてのスケジュールを照会したいだけです。したがって、たとえば、月曜日のUTC正午の場合、:timezone => ESTおよび:hour => 7のスケジュールは、:timezone => PSTおよび:hour=>4のスケジュールと同様に結果に含まれるはずです。もちろん、たとえば火曜日の午前1時は、PST / ESTの両方で月曜日であるため、さらに注意が必要です。
時間を正規化することを考えたので、全員がutcを使用していましたが、誰かが午後11時の水に何かをスケジュールする可能性があるため、これは私にとって日を混乱させることになります。スケジューラフォームでのselectは、データベースに保存した日数とは一致しません。
誰かがモンゴイド固有のソリューションを持っている場合に備えて、私はモンゴイドを使用しています。