問題タブ [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.
ruby-on-rails - 複数の Workling ワーカーを同期するにはどうすればよいですか?
次のような状況があります。
- 3 つのタスク: A、B、C (Workling ワーカーとして実装)
- 2 つのユーザー イベント (コントローラー メソッドの呼び出し)
タスクは次のようにトリガーされます。
- 最初のユーザー イベントは、タスク A とタスク B をトリガーします。
- 次に、オプションのユーザー イベントによってタスク C をトリガーできますが、そのタスクはタスク A と B が完了するまで実行してはなりません。
この一連のイベントを強制するにはどうすればよいですか?
1 つの方法は、タスク C の開始時にタスク A と B を実行することですが、タスク C をトリガーするユーザー イベントは発生しない可能性がありますが、それでもタスク A と B は実行する必要があります。
「通常の」プログラムでは、すべての同期オブジェクト (ミューテックス、セマフォ、クリティカル セクションなど) を自由に使用できます。しかし、ここで何ができますか?
(問題があれば、Rails アプリケーションは Linux サーバー上で実行され、Workling は Starling を使用するようにセットアップされます)
ruby-on-rails - バックグラウンドでタスクを実行していない作業
バックグラウンド タスクを実行する方法を説明するrailscastに従いましたが、動作させることができません。タスクは実行されますが、バックグラウンドでは実行されません (admin_path にリダイレクトされるまでに 5 秒かかります)。
私のコードは次のようになります。
class AdminWorker < Workling::Base
def test_workling(options)
sleep 5
end
endclass AdminController < ApplicationController
def test_workling
AdminWorker.asynch_test_workling
flash[:notice] = "バックグラウンドで処理中"
redirect_to admin_path
end
end
私は何を間違っていますか?デバッグする方法は?
ありがとう!
ruby-on-rails - Rails バックグラウンド ジョブ処理
Rails アプリケーションでスターリングをキュー サーバーとして使用しています。そのため、worker メソッドを呼び出すたびに、スターリングと作業クライアントをコンソールから開始する必要があります。
乗客が開始されるとすぐに、作業とスターリングの両方が自動的に開始される方法はありますか、それとも、ワーカー メソッドを呼び出すと、作業インスタンスのみが作成されます。
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 ソリューションが優先されます。
ruby-on-rails - ワーキング & RabbitMQ
こんにちは私のプロジェクトでは、作業を使用してバックグラウンドでいくつかのジョブを実行したいと考えています (一部のデータをキューに発行します) が、アプリを構成しようとしているときにエラーが発生します (初期化された定数 MemCache) 私は Fedora 13 + ruby エンタープライズ版を使用しています私の質問は
最近、仕事をしている人はいますか?大丈夫でしたか?
「script/workling_client start」を実行しようとしましたか? エラーはありましたか?
誰かが作業に代わるものを提案できますか?
ありがとう :)
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
アクションは確実に実行されます
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:in
eachから参加' 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:in
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: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: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/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: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.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:in
run' from script/workling_starling_client:17
ruby-on-rails - サーバーのパフォーマンスに影響を与えることなく、作業を使用して45kのデータベースレコードを処理するレール内
私の Rails アプリでは、ワーカー プロセスを使用して 45,000 のデータベース レコードを 6 時間に 1 回スキャンし、特定の条件が満たされた場合にメールを送信します。これにより、ワーカーが処理しているときにサーバーの CPU/負荷が急増します。その結果、他のサーバー要求のパフォーマンスが低下します。find_in_batch を使って一度に 1000 件のレコードを取得して処理を試みました。しかし、CPU 使用率は依然としてピーク レベルにあります。私が見ることができた大きな違いはありません。これを処理して、CPU 使用率が上限に達しないようにする方法はありますか?
ruby-on-rails - Rails 3で使用するための作業に代わるジョブキュー?
Worklingは Rails 3 と互換性がないようです。Rails 3 アプリケーションでワーク キューを処理するための代替手段はありますか?
ruby-on-rails - Rails での Starling/Workling の問題
の作業を開始して作業しようとしていrails 3
ますが、いくつかの問題があります。私はstarling-starling
gemfileにインストールし、次の方法で作業をインストールしました:
次に、ワーカーに次のように書きました。
そして、コントローラーに次の呼び出しを入れます。
スターリングデーモンを次のように起動しました:
そして、私のワーキングモニター:
どちらのコマンドでもエラーは発生しません。ただし、コントローラーがワーカーを呼び出すと、何も起こりません。uid が保存されている場所と呼ばれるファイルがログに作成されますがbot_workers_bot_test
、BotWorker クラスに渡されることはありません。
私が間違っているかもしれないことについて誰か提案がありますか? ご回答ありがとうございます。