2016-12-12 4 views
1
私は、ユーザーが、たとえば、自分の好きな周期で、たとえば、メールを受信するためのオプションを与えている

保存周期

Every day at 5am 

または

Every Friday at 11pm 

あるいは

Every second Monday of the month at 12am 

Whenever gemにフィードするために、この種のデータを保存するための最良の選択は何ですか?

更新

私はcron_parser宝石と組み合わせて@mudasobwaのアドバイスで質問を解決することができました。プロセス・フローは次のとおりです。フロントエンドの選択ボックスから

  • ゲットユーザーの入力
  • 例えば7は私が毎週メールを送信する必要があることを意味します(cronの形式にバックエンドとデコードにそれを解析します、コードは "1 1 * * 1"となります)、値をperiodicityとして保存します。
  • gemを使用して dateformatを生成します。これは、実行する必要のあるジョブが日付指定されるたびに通知するために使用されます。

答えて

2

whenever gem accepts生のcron構文。そのため、可能な限り少ない変換を含む最も簡単な方法は、生のcron形式に値を格納することです。

つまり、おそらく/からraw cron形式への/からのユーザー入力が許可されているはずです。

+0

理論的にはそれはかなり明確ですが、データベースには何を保存すべきですか?私のプロセスは、メッセージをまだ受信していない受信者が毎時チェックするたびに(古いメッセージを探して)送信することです。これらのメッセージには、メッセージを送信する日時を格納するnext_sendという列があります。しかし、その列の日付を取得するには、最初のユーザー入力から解析する必要があります。 –

+0

データベース内に**文字列を生のcron形式で保存する必要があります。 '0 0 27-31 * *' 'のようなSmth。 – mudasobwa

+0

ありがとう、一言で言えば、このraw cronデータを保存し、それを解析してnext_runの日付を取得してモデルに設定します。 –

関連する問題