6

タスクをスケジュールするのはこれが初めてで、最適な実装 (または適切な実装) がわかりません。

私の目標: twilio を使用して ruby​​ on rails 4 アプリをセットアップし、Heroku にデプロイしました。カスタマイズされたテキスト メッセージ (データベース内の情報によって書き込まれ、作成される) を使用して、週に 1 回、すべてのユーザーにアプリが自動的にテキスト メッセージを送信するようにしたいと考えています。

調査の結果、私は次の Gem にたどり着きました: WhenRufus-Scheduler

これらの宝石は両方ともジョブを完了できると信じていますが、Rufus のドキュメントを読むと、「注意してください: rufus-scheduler は cron の代替品ではありません」私が欲しいものが本当に cron ジョブなのか、それとも「Rufus スケジューラ」。

次の質問が残っています: cron ジョブとは何ですか? また、cron ジョブを使用する適切な時期はいつですか? Rufus-Scheduler が cron の代わりにならないのはなぜですか? また、何が違うのですか? どちらを使用する必要がありますか?

4

4 に答える 4

1

クロンについて:

Cron は、nix システムでスケジュールされたタスクを実行するプログラムの名前です。Windows でのスケジュールされたタスクとは何か、Cron は概念レベルで Linux で同様のことを行います。Cron は Linux や UNIX のようなオペレーティング システムで最も便利なツールの 1 つです。cron サービス (デーモン) はバックグラウンドで実行され、/etc/crontab ファイルと /etc/cron を常にチェックします。/ ディレクトリ。また、/var/spool/cron/ ディレクトリもチェックします。

Heroku でタスクをスケジュールする場合

良いニュースとして、Heroku には Scheduler というものがあります。これは、従来のサーバー環境での cron のように、スケジュールされた時間間隔でアプリでジョブを実行するためのアドオンです。そのため、いつでも cron や gem をいじる必要はありません。Heroku で Scheduler アドオンを使用するだけです。

詳細については、https ://devcenter.heroku.com/articles/scheduler を参照してください。

于 2014-04-30T03:06:21.197 に答える
1

cron ジョブは、cron ソフトウェアを使用して、自動化されたタイム スケジュールで実行されるプログラムです。

Rufus-Scheduler は、Ruby プロセス内で実行されるため、cron とは異なります。

あなたが説明していることについては、どちらでもいいと思います。

于 2014-04-30T03:09:48.087 に答える
0

wheneverでは、一連のコマンドと各コマンドの頻度を指定するファイルである crontab ファイルに変換される Ruby コードを記述できます。このファイルはcronによって使用されます。

rufus-scheduler純粋なルビーです。ルビーを記述し、ジョブはルビーで実行されます。たとえば、アプリケーションループ内で を呼び出しscheduler.joinたり、別のスレッドで を呼び出したりしますruby your/rufus_scheduler_script.rb

私の意見では、それらは同じことを行います。cron では Linux コマンドを使用していますが、他に違いは見られません。

他のオプションもあります。私の経験では、rufus-scheduler に問題がありましたが、いつでも (Rails アプリでクラスが見つからなかったのですが、単なる癖だったのかもしれません)、反対側では時計仕掛けが機能しました。

于 2014-04-30T03:13:13.830 に答える