2

Ruby on Rails を使用して、heroku にデプロイする投薬リマインダー システムを構築しています。

このシステムを使用して、医師は患者の薬の名前、投与量、タイミングの詳細などの薬の詳細を入力すると、アプリは薬を服用する時間をSMSで患者に通知します。

私はアプリケーションを開発しましたが、投薬期間が経過するまでプロセスを何度も実行する必要があるため、SMS の部分で立ち往生しています。

データベースに繰り返しクエリを実行するスクリプトを Rails アプリから実行できるようにしたいのですが、SMS を送信するときに患者にディスパッチします。これは、通常の要求/応答 Web サイクルでは機能しません。

開発者が rufus スケジューラーや resque などのバックグラウンド ジョブを作成できるようにする ruby​​gems を調査しましたが、これを行う方法がわかりません。

私はあらゆる種類の提案を受け入れます。SMSの送信にTwilioを使用しています

4

3 に答える 3

1

resque/rufus については知りませんが、sidekiq にはジョブをキューに入れる機能があることは知っていますが、特定の時間まで遅延させることができます。

https://github.com/mperham/sidekiq/wiki/Delayed-Extensions#advanced-options

必要に応じて、遅延がどの程度正確か (つまり、sidekiq のポーリング頻度) を調べる必要がありますが、これでうまくいくと思います。

それには、別の dynamo か、最近 heroku が呼んでいるものは何でも必要です。

于 2014-05-29T18:51:20.203 に答える
1

run_at パラメータを使用してdelayed_jobを使用して、スケジュールされたSMSをHerokuからTwilio経由で送信します。

Twilio API で実際の送信を行うメッセージ モデルに send_message メソッドがあります。遅延ジョブを使用してカスタム ジョブを作成することを選択したため、メッセージをスケジュールすると、次のようになります。

Delayed::Job.enqueue my_custom_job, :run_at => TIME_I_WANT_TO_SEND

heroku ワーカーを使用して送信のバックグラウンド タスクを実行すると、非常に信頼性が高くなります。

于 2014-06-01T01:07:46.480 に答える
0

Heroku にデプロイしているため、ジョブのスケジューリングに関するドキュメントを読むことは必須です。

https://devcenter.heroku.com/articles/scheduler

于 2014-05-30T00:25:17.267 に答える