問題タブ [backgroundrb]

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 投票する
2 に答える
510 参照

ruby-on-rails - Backgroundrb スケジュールされたタスクの終了

実行にかなり時間がかかる backroundrb スケジュール タスクがあります。ただし、プロセスはわずか 2.5 分後に終了しているようです。

私の background.yml ファイル:

プロセスの実行中、サーバー上でアクティビティがありません。(つまり、プロセスが突然停止するまで、サーバー上でログ ファイルの処理を監視しているのは私だけです。)

何か案は?

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

ruby-on-rails - Railsアプリケーション内でDRbサービスを初期化する正しい場所はどこですか?

Railsアプリケーション内でDRbを使用して、Railsプロセスの外部で高価なタスクをオフロードしています。DRbObject.newを使用してクライアントスタブを初期化する前に、DRb.start_serviceを使用してDRbサービスを初期化する必要があります。

モデルまたはコントローラーでこれを行うと、スレッドが不確実な状態のままになるように見えます。私が雑種を出るとき、それは言います:

Reaping 1 threads for slow workers because of 'shutdown' Waiting for 1 requests to finish, could take 60 seconds.

environment.rbでサービスを初期化することは、大きな注意点でうまく機能しているようです。私は、一部のRailsワーカーでもbackgroundrbを使用しています。それらが初期化されると、environment.rbが実行され、二重初期化による問題が再び発生します。

クライアントでDRb.start_serviceを呼び出す正しい場所はどこですか?または、同じプロセスで2回実行することを回避できるように、初期化をテストする方法はありますか?

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

ruby-on-rails - backgroundrb thread_pool.deferメソッドロガーの出力はどこに行きますか?

スレッドの問題が原因のようですlogger.warn(私がテストしたもの)は出力を生成しませんか?私のコードはこれに似ています:

何か案が?

0 投票する
4 に答える
1263 参照

ruby-on-rails - 毎分実行されるメーラーに最適な Rails ソリューション

その時点で送信されるはずの電子メールを毎分データベースでチェックするアプリケーションがあります。これを、毎分 cron ジョブによって実行される rake タスクにすることを考えていました。これに対するより良い解決策はありますか?

私が読んだことから、これは理想的ではありません。なぜなら、レーキは毎分レール環境全体をロードする必要があり、これは高価になるからです。

考え?

ありがとう。

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

ruby-on-rails - Rake タスクをコーディングして BackgrounDRb タスクをトリガーするにはどうすればよいですか?

15 分ごとに「sync」メソッドを実行するように BackgrounDRb ワーカーをセットアップしました。次に、たとえば、メソッドを今一度実行したいとします。私は次のようにレーキタスクでそれをラップしようとしていました:

しかし、これはうまくいきません。あらゆる種類の未定義の定数などで救済されます。私の試みはどれもその他を要求しません。gems は、実行可能な rake タスクを生成しました。:(

では、問題は、rake タスク内から BackgrounDRb タスクをどのようにトリガーするかということです。

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

ruby-on-rails - backgroundrb が同じタスクの複数のコピーを開始しないようにするにはどうすればよいですか?

たとえば、backgroundrb の cron スケジューリング機能を使用して 15 分ごとに実行するように設定されたワーカーがあるとします。次に、たとえば、ワーカーの 1 つのインスタンスの実行に 15 分以上かかる場合、backgroundrb によって 2 番目のワーカーが並行して開始されることは望ましくありません。どうすればそれを達成できますか?

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

ruby-on-rails - BackgroundRB がクラッシュした場合にキャンセルされた (取得された) ジョブを回復する方法は?

問題: Rails アプリから BackgroundRB で数秒から数分実行されるジョブがあります。しかし、タスクの実行中に新しいコードをデプロイして BackgroundRB を再起動するとどうなるでしょうか? BackgroundRB は「取られた」タスクを取得していないようで、これらのタスクを回復できるものを見つけることができませんでした。

backgroundrb がダウンしたときに実行されていたタスクを回復するために BackgroundRB が提供するかどうか、またどのように提供するかを誰か教えてもらえますか?

この質問をする理由は、ジョブの最後に、任意の時点で新しいジョブが将来キューに入れられるためです。

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

ruby-on-rails - プロセスのバックグラウンド化に Kernel#fork を使用する、プロ? 短所?

Rails アプリからのプロセスを「バックグラウンド」にするために fork{} を使用するのが良いアイデアかどうかについて、いくつか考えてみたいと思います...

私が集めたものから fork{my_method; Process#setsid} は、実際に本来の機能を果たします。

1) 異なる PID を持つ別のプロセスを作成します

2) 呼び出しプロセスを中断しません (たとえば、フォークの終了を待たずに続行します)。

3) 終了するまで子を実行します

..これはクールですが、それは良い考えですか? フォークは正確に何をしているのですか?Rails mongrel/passenger インスタンス全体の複製インスタンスがメモリ内に作成されますか? もしそうなら、それは非常に悪いでしょう。それとも、大量のメモリを消費することなく、どうにかしてそれを行うのでしょうか。

私の最終的な目標は、バックグラウンドのデーモン/キュー システムを廃止して、これらのプロセス (主に電子メールの送信) をフォークすることでした。しかし、これでメモリが節約されない場合は、間違いなく間違った方向への一歩です。

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

ruby-on-rails - Rails backgroundRBプラグインは、それをスケジュールし、永続性のためにデータベースにキューイングする必要があります

私は次のことをしようとしています:

  1. 15分ごとにワーカーとその中のメソッドを実行します
  2. データベーステーブルbdrd_job_queueに、最後の実行時のジョブのログを記録します。

私がしたこと:

backgroundRB.ymlファイルに15分ごとのスケジュールがあります

メソッド呼び出しには呼び出しがありますが、オブジェクトがnilpersistent_job.finish!であるため、機能していません。persistent_job

DBにログインしているが、backgroundRB.ymlから自動的にスケジュールされていることを確認するにはどうすればよいですか?

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

ruby-on-rails - テスト中に一部の BackgroundRb ワーカーを無効にすることはできますか?

メールの送信を担当する BackgroundRb ワーカーがいます。

テスト中にこのワーカーを実行しないようにするにはどうすればよいですか? フレームワークには、使用できる構成パラメーターまたはスタブ ワーカーが含まれていますか?