問題タブ [workling]

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 に答える
297 参照

ruby-on-rails - 複数の Workling ワーカーを同期するにはどうすればよいですか?

次のような状況があります。

  • 3 つのタスク: A、B、C (Workling ワーカーとして実装)
  • 2 つのユーザー イベント (コントローラー メソッドの呼び出し)

タスクは次のようにトリガーされます。

  1. 最初のユーザー イベントは、タスク A とタスク B をトリガーします。
  2. 次に、オプションのユーザー イベントによってタスク C をトリガーできますが、そのタスクはタスク A と B が完了するまで実行してはなりません。

この一連のイベントを強制するにはどうすればよいですか?

1 つの方法は、タスク C の開始時にタスク A と B を実行することですが、タスク C をトリガーするユーザー イベントは発生しない可能性がありますが、それでもタスク A と B は実行する必要があります。

「通常の」プログラムでは、すべての同期オブジェクト (ミューテックス、セマフォ、クリティカル セクションなど) を自由に使用できます。しかし、ここで何ができますか?

(問題があれば、Rails アプリケーションは Linux サーバー上で実行され、Workling は Starling を使用するようにセットアップされます)

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

ruby-on-rails - バックグラウンドでタスクを実行していない作業

バックグラウンド タスクを実行する方法を説明するrailscastに従いましたが、動作させることができません。タスクは実行されますが、バックグラウンドでは実行されません (admin_path にリダイレクトされるまでに 5 秒かかります)。

私のコードは次のようになります。

class AdminWorker < Workling::Base
  def test_workling(options)
    sleep 5
  end
end

class AdminController < ApplicationController
  def test_workling
    AdminWorker.asynch_test_workling
    flash[:notice] = "バックグラウンドで処理中"
    redirect_to admin_path
  end
end

私は何を間違っていますか?デバッグする方法は?

ありがとう!

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

ruby-on-rails - Rails バックグラウンド ジョブ処理

Rails アプリケーションでスターリングをキュー サーバーとして使用しています。そのため、worker メソッドを呼び出すたびに、スターリングと作業クライアントをコンソールから開始する必要があります。

乗客が開始されるとすぐに、作業とスターリングの両方が自動的に開始される方法はありますか、それとも、ワーカー メソッドを呼び出すと、作業インスタンスのみが作成されます。

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

ruby - メソッドを別プロセスで実行するための Ruby ソリューションが必要

インターフェイスが次のようなポーラー サービスを実装しています。

このstartメソッドは、継続的に http リクエストのヒットを開始し、データベース内のものを更新することになっています。ed が実行されるstartと、明示的に ed が実行されるまでプロセスが続行されstopます。

startの実装は、新しいプロセスで生成して実行する必要があることを理解しています。Rubyでそれを達成する方法がよくわかりません。Ruby フレームワーク固有のソリューションではなく、Ruby ソリューションが必要です (Rails プラグインや Sinatra 拡張機能ではなく、Ruby gem のみ)。私は eventmachine と starling-workling を調査しています。eventmachine は大きすぎて短期間で理解できないことがわかりました。動作はプラグインであり、gem ではありません。そのため、Ruby アプリケーションで動作させるのは大変です。

これを達成する方法についてのガイダンスが必要です。ポインタはありますか?コード サンプルが役立ちます。

編集

スレッディング/フォークよりも Eventmachine または starling-workling ソリューションが優先されます。

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

ruby-on-rails - ワーキング & RabbitMQ

こんにちは私のプロジェクトでは、作業を使用してバックグラウンドでいくつかのジョブを実行したいと考えています (一部のデータをキューに発行します) が、アプリを構成しようとしているときにエラーが発生します (初期化された定数 MemCache) 私は Fedora 13 + ruby​​ エンタープライズ版を使用しています私の質問は

最近、仕事をしている人はいますか?大丈夫でしたか?

「script/workling_client start」を実行しようとしましたか? エラーはありましたか?

誰かが作業に代わるものを提案できますか?

ありがとう :)

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

ruby-on-rails - 動作中のクライアントが起動後数秒で停止する

こんにちは、Starling の代わりに RabbitMQ を使用しようとしています。アプリを構成しましたが、すべて問題ないように見えますが、「script/workling_client start」を実行すると、動作し始めて数秒で終了し、理由がわかりません。

私のアプリは Starling で完璧に動作します

Fedora 13 ruby​​ 1.8.7 rails 2.3.8 mongrel を使用しています ( http://github.com/tmm1/amqpに従って構成)

ログ ファイルは空ですが、コード isidelistenアクションは確実に実行されます

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

ruby-on-rails - 私のレールアプリでデータベースがダウンしていると、作業が機能しません

cron ジョブを使用してワーカーをスケジュールし、データベース接続を定期的に (たとえば 5 分程度) チェックし、それに応じて memcache キーを更新したいと考えています。私のアプリで memcache 変数が設定されていることがわかった場合。データベースが稼働しているときに、ページを別の方法でレンダリングします。

しかし問題は、データベースがダウンしているときにワーカーが起動しないことです。データベースが起動したとき。データベース接続が存在することを正しく検出し、memcache 変数を更新すると、すべて正常に動作します。

データベースがダウンしているときにワーカーが起動しない理由はわかりません。締め切り間近です。どんな助けでも大歓迎です!

アップデート:

これは、作業が開始されないときに発生するエラーです

/apps/Symantec/shasta/website/install/local/ruby-1.8.7-p299/lib/ruby/gems/1.8/gems/activerecord-2.1.1/lib/active_record/connection_adapters/mysql_adapter.rb:527:in real_connect': Can't connect to MySQL server on '10.223.2.50' (111) (Mysql::Error) from /apps/Symantec/shasta/website/vendor/plugins/workling/script/../lib/workling/starling/poller.rb:35:in/apps/Symantec/shasta/website/vendor/plugins/workling/script/../lib/workling/starling/poller.rb:35:in listen' from /apps/Symantec/shasta/website/vendor/plugins/workling/script/../lib/workling/starling/poller.rb:35:ineachから参加' from /apps/Symantec/shasta/website/vendor/ plugins/workling/script/../lib/workling/starling/poller.rb:35:in listen' from /apps/Symantec/shasta/website/vendor/plugins/workling/script/listen.rb:19 from /apps/Symantec/shasta/website/install/local/ruby-1.8.7-p299/lib/ruby/gems/1.8/gems/daemons-1.1.0/lib/daemons/application.rb:203:inload' from /apps/Symantec/shasta/website/install/local/ruby-1.8.7-p299/lib/ruby/ gems/1.8/gems/daemons-1.1.0/lib/daemons/application.rb:203:in start_load' from /apps/Symantec/shasta/website/install/local/ruby-1.8.7-p299/lib/ruby/gems/1.8/gems/daemons-1.1.0/lib/daemons/application.rb:296:instart' from /apps/Symantec/shasta/website/install/local/ruby-1.8.7-p299/lib/ruby /gems/1.8/gems/daemons-1.1.0/lib/daemons/monitor.rb:51:inwatch' from /apps/Symantec/shasta/website/install/local/ruby-1.8.7-p299/lib/ruby/gems/1.8/gems/daemons-1.1.0/lib/daemons/monitor.rb:51:in/apps/Symantec/shasta/website/install/local/ruby-1.8.7-p299/lib/ruby/gems/1.8/gems/daemons-1.1.0/lib/daemons/monitor.rb:51 からの fork: /apps/Symantec/shasta/website/install/local/ruby-1.8.7-p299/lib/ruby/gems/1.8/gems/daemons-1.1.0/lib/daemons/monitor.rb:45watch' from /apps/Symantec/shasta/website/install/local/ruby-1.8.7-p299/lib/ruby/gems/1.8/gems/daemons-1.1.0/lib/daemons/monitor.rb:45:inから: watch' from /apps/Symantec/shasta/website/install/local/ruby-1.8.7-p299/lib/ruby/gems/1.8/gems/daemons-1.1.0/lib/daemons/monitor.rb:44:in/apps/Symantec/shasta/website/install/local/ruby-1.8.7-p299/lib/ruby/gems/1.8/gems/daemons-1.1.0/lib/daemons/monitor.rb からのループ内: 44: watch' from /apps/Symantec/shasta/website/install/local/ruby-1.8.7-p299/lib/ruby/gems/1.8/gems/daemons-1.1.0/lib/daemons/monitor.rb:84:in/apps/Symantec/shasta/website/install/local/ruby-1.8.7-p299/lib/ruby/gems/1.8/gems/daemons-1.1.0/lib/daemons/monitor.rb の start_with_pidfile 内:64: fork' from /apps/Symantec/shasta/website/install/local/ruby-1.8.7-p299/lib/ruby/gems/1.8/gems/daemons-1.1.0/lib/daemons/monitor.rb:64:in/apps/Symantec/shasta/website/install/local/ruby-1.8.7-p299/lib/ruby/gems/1.8/gems/daemons-1.1.0/lib/daemons/monitor の start_with_pidfile 内。 rb:111:でstart' from /apps/Symantec/shasta/website/install/local/ruby-1.8.7-p299/lib/ruby/gems/1.8/gems/daemons-1.1.0/lib/daemons/application_group.rb:149:in/apps/Symantec/shasta/website/install/local/ruby-1.8.7-p299/lib/ruby/gems/1.8/gems/daemons-1.1.0/lib/daemons/application.rb:283 からの create_monitor: in start' from /apps/Symantec/shasta/website/install/local/ruby-1.8.7-p299/lib/ruby/gems/1.8/gems/daemons-1.1.0/lib/daemons/controller.rb:70:inrun' from /apps/Symantec/shasta/website/install/local/ruby-1.8.7-p299/lib/ruby/gems/1.8/gems/daemons-1.1.0/lib/daemons.rb:143:in run' from /apps/Symantec/shasta/website/install/local/ruby-1.8.7-p299/lib/ruby/gems/1.8/gems/daemons-1.1.0/lib/daemons/cmdline.rb:112:in/apps/Symantec/shasta/website/install/local/ruby-1.8.7-p299/lib/ruby/gems/1.8/gems/daemons-1.1.0/lib/daemons/cmdline.rb:112 から呼び出します: in catch_exceptions' from /apps/Symantec/shasta/website/install/local/ruby-1.8.7-p299/lib/ruby/gems/1.8/gems/daemons-1.1.0/lib/daemons.rb:142:inrun' from script/workling_starling_client:17

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

ruby-on-rails - サーバーのパフォーマンスに影響を与えることなく、作業を使用して45kのデータベースレコードを処理するレール内

私の Rails アプリでは、ワーカー プロセスを使用して 45,000 のデータベース レコードを 6 時間に 1 回スキャンし、特定の条件が満たされた場合にメールを送信します。これにより、ワーカーが処理しているときにサーバーの CPU/負荷が急増します。その結果、他のサーバー要求のパフォーマンスが低下します。find_in_batch を使って一度に 1000 件のレコードを取得して処理を試みました。しかし、CPU 使用率は依然としてピーク レベルにあります。私が見ることができた大きな違いはありません。これを処理して、CPU 使用率が上限に達しないようにする方法はありますか?

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

ruby-on-rails - Rails 3で使用するための作業に代わるジョブキュー?

Worklingは Rails 3 と互換性がないようです。Rails 3 アプリケーションでワーク キューを処理するための代替手段はありますか?

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

ruby-on-rails - Rails での Starling/Workling の問題

の作業を開始して作業しようとしていrails 3ますが、いくつかの問題があります。私はstarling-starlinggemfileにインストールし、次の方法で作業をインストールしました:

次に、ワーカーに次のように書きました。

そして、コントローラーに次の呼び出しを入れます。

スターリングデーモンを次のように起動しました:

そして、私のワーキングモニター:

どちらのコマンドでもエラーは発生しません。ただし、コントローラーがワーカーを呼び出すと、何も起こりません。uid が保存されている場所と呼ばれるファイルがログに作成されますがbot_workers_bot_test、BotWorker クラスに渡されることはありません。

私が間違っているかもしれないことについて誰か提案がありますか? ご回答ありがとうございます。