2

すべてのサイトを検索するのではなく、db クエリを介してこれをどのように処理できるのか疑問に思っています。

Site.all.select { |x| x.last_ran <= DateTime.now - x.interval.minutes }

基本的に、間隔の前に last_ran だったすべてのサイトを見つける必要があります。したがって、サイトを 12:00 とその 12:06 に実行したが、間隔が 5 分である場合、このクエリによって返されます。

私が抱えている問題は、データベースレベルで x.interval.minutes (5.minutes) を変換することです。

ありがとう - これを行うための db 固有の方法がある場合は、postgres も使用しています!

4

1 に答える 1

1

postgresではこれはうまくいくでしょう...

Site.where(
  "sites.last_ran <= CURRENT_TIMESTAMP - sites.interval * INTERVAL '1 second'"
)

NOW()またはのいずれかを使用できると思いますCURRENT_TIMESTAMP

于 2012-12-24T17:11:54.787 に答える