問題タブ [rufus-scheduler]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
494 参照

ruby-on-rails - rufus-scheduler gemがレールで機能しない

私は state_machine gem と rufus-scheduler gem を使用しています。ステート マシンは完全に機能しています。ただし、Rufus-scheduler はそうではありません。rufus gem に慣れるためだけにこのプログラムを作成しています。:accepted が :both に遷移してから 10 秒後に、:only_employer に遷移する必要があります。しかし、何らかの理由で rufus-scheduler が機能していません。:both への移行は機能しますが、:only_employer への移行は行われません。これを修正するにはどうすればよいですか? ありがとう。

0 投票する
1 に答える
418 参照

ruby-on-rails - rufus スケジューラを .in ではなく .at で動作させる方法がわかりません

スケジュールとタスクの 2 つのモデルがあります。タスクは Schedule に属し、Schedule は has_many のタスクに属します。「タスクの追加」ボタンを押すことで、JavaScriptを使用してより多くのタスクフォームを動的に作成するタスク用のネストされたフォームがあります。rufus_scheduler を使用して、タスクにユーザーが入力した終了日と終了時刻があるようにしようとしています。タスクが完了したら、「yo yo yo」をサーバーに出力するだけです。

次のコードを使用して、最初のタスクを数秒で正常に完了することができました。

上記のコードでは、 timeframe は、ジョブが発生する前に指定された秒数でユーザーが入力する整数フィールドです。

問題は、上記のコードが間隔を使用しており、正確な日付と時刻を使用したいことです。そこで、時間枠を文字列に変更し、ユーザーに「12/18/2013」という形式で日付を入力してもらいました。これが私が試したことです:

明確にするために、timeframe は日付で構成される文字列で、complete_time はタスクが終了する時刻で構成される時間フィールドです。

このコードは機能しませんでした。「yo yo yo」はまだ印刷されますが、すぐに印刷されます。

postgres データベースを使用して webrick で rails を実行しています。Ruby on Rails 4 と Ruby 2 を使用しています。助けていただければ幸いです。ありがとう!

アップデート:

コードに 2 つのエラーがあることに気付きました。complete_time は、読み取り不能な形式に自動的に変換されていました。complete_time を文字列に変更することでこれを修正しました。さらに、.at メソッドの引数が引用符で囲まれていないことに気付きました。これを修正しました。しかし、私はまだ同じ問題を抱えています。「ヨヨヨ」と言う時間まで待つのではなく、すぐに入れることです。新しいコードは次のとおりです。

scheduler.at メソッドは、次のようにサーバーに送信されます。

もちろん、ユーザー入力の時間と日付の変更が深まっています。上記のコードは、最後に実行したときのものです。

0 投票する
3 に答える
6557 参照

ruby-on-rails - Heroku にデプロイされた Rails アプリで rufus-scheduler を動作させるにはどうすればよいですか?

./config/initializersという名前のファイルを作成しました。このファイルにtask_scheduler.rbは次のコードが含まれています。

rufus-scheduler、開発環境でテストするときに機能します。しかし、アプリを Heroku (無料) にデプロイすると動作しなくなります。

Phusion Passenger 4.0.27アプリケーションサーバーとして使用しています。

私の Gemfile は次のようになります。

ProcfilePhusion Passenger に必要なには、次のものが含まれます。

実行中のワーカーはありません。無料の標準webDyno を 1 つ使用しています。

rufus-schedulerHeroku へのデプロイ中に機能しない理由はありますか?

アップデート

.rake顧客ファイルを作成し、無料でタスクを実行できることはわかってHeroku Scheduler add-onいます。rufus-schedulerしかし、無料のherokudynoの組み合わせを機能させる方法があるかどうか疑問に思っています。

0 投票する
2 に答える
2058 参照

ruby-on-rails - 毎回2回実行されるrufusスケジューラ

私のタスクかもしれませんし、私のスケジューラかもしれませんが、何らかの理由でスケジュールされたタスクが 2 回実行されているか、2 つのバージョンが DB に保存されています。これが私のコードです:

report.rb:

および scheduler.rb:

本当に明らかな何かが欠けていますか?保存されたページ統計のデータベースからの出力は次のとおりです。

タイムスタンプからわかるように、10分ごとに2回実行されます

編集:

データをもう一度見たところ...スケジューラーのタイミングが数回変更されました。

  1. 最初に、10 分ごとに 2 回続けてジョブを実行しました。
  2. その後、10分に1回に切り替わりました
  3. その後、5分に1回に切り替わりました
  4. その後、5分に2回に切り替わりました

編集 2: ロック後の新しい出力:

私のファイルは次のようになります。

ただし、heroku ログにはエラーがあります。

0 投票する
3 に答える
4862 参照

ruby - Rufus Scheduler: x 秒ごとに実行し、最初の実行はすぐに行う

rufus スケジューラを使用して、いくつかのタスクを頻繁に実行しています。スクリプトが開始されるとすぐにすべてのタスクを多かれ少なかれ実行し、次に指定された間隔で実行したいと思います。これは API でサポートされていないようですが、何か不足していますか?

次のように、最初の実行までの遅延として0.1秒を指定することに頼りました

プロパティが 0 に設定されている場合:first_in、スケジューラは最初の実行前に 10 秒間待機します。値が低すぎる場合 (タスクの実行に関して過去に評価されたものだと思います)、または を使用するTime.nowと、次のエラーが発生します。

これを行う正しい方法は何ですか?

0 投票する
1 に答える
304 参照

ruby-on-rails - dynoの数だけRufusスケジューラが呼び出されるのを避けるにはどうすればよいですか?

Rufus Schedulerを使用するHerokuでrails アプリを実行しています。

私のアプリは複数使用しており、スケジューラは1 つだけではなくdynoそれぞれで実行されているため、スケジュールされたイベントが複数回 (それぞれ 1 回) 発生します。dynodyno

どうすればこれを回避できますか?

0 投票する
0 に答える
652 参照

ruby-on-rails - Rufusスケジューラーが本番環境で実行されていません

私は本番環境でプーマを実行しています。

これは puma の構成です。ただし、1 つのインスタンスの Rufus-scheduler のみが、開発環境で正常に動作しており、期待どおりに動作しています。

Rails 4.0.2で実行しています

これが実行できない理由はありますか?

0 投票する
1 に答える
223 参照

ruby - Rufusスケジューラで例外をスローするRubyコード

無限ループで機能を実行する debian Linux でコントローラーを実行しています。これに加えて、Rufus Scheduler を使用して、特定の時間 (たとえば 1 分) 後に実行される機能をスケジュールしています。関数が Rufus で適切に実行されると、次のエラーが表示されます。

0 投票する
2 に答える
720 参照

ruby-on-rails - ユーザー入力に基づいて時間がスケジュールされるように、Rufus スケジューラ内 (コントローラー内) のモデルからメソッドを呼び出すにはどうすればよいですか? レール4

これがシナリオです。Rails 4 と Rufus Scheduler を使用して、将来の特定の時間に SMS を送信するアプリを作成しています。これまでのところ、ボタンをクリックするだけで SMS を送信したい場合、SMS が機能するようになりました。また、以下のような独自のコードで設定したタイマーでそれらを送信することもできます。これにより、メッセージを将来送信することができます。基本的に、タイマーを設定し、タイマーが鳴ったらメソッドを呼び出して SMS メッセージを送信します。

これはすべて素晴らしいことですが、最後に行う必要があるのは、ユーザー入力を受け取り、それを日付/時刻/タイムゾーンがある場所に配置するメソッドを作成することです。私の new.html.erb では、すでにこの情報をすべて取り込んでいますが、そこから取得してスケジューラ アクションに入れる方法がわかりません。

これは機能します:

これは私がすでに試したことですが、運がありません。

モデルはこちら。

で、コントローラーはこちら。

終わり

そしてビュー:

私はこれを 3 時間以上クラックしようとしてきましたが、運がありませんでした。私は Rails の初心者です。この質問が完全にフォーマットされていない場合は、事前に申し訳ありません。まだまだ勉強中。「-」、「+」、および「 」を使用すると、メソッドでエラーが発生し続けました。だから私はそれらのものをビューの中に入れました。それが奇妙に見える理由です。皆さんはどう思いますか?