問題タブ [em-synchrony]

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

ruby - EM :: Synchrony :: Multiをredisで使用する方法は?

複数のredisクエリを並行して実行しようとしていますが、エラーが発生します:

コードは次のとおりです。

助けてください

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

concurrency - Sinatra::websocket との同期

Sinatra ::SynchronyEM-Synchronyの「イベント化されたコードのもつれを解くのに役立つ便利なクラスとプリミティブのコレクション」を使用していることを考えると、「コールバックのない高速で高度に同時実行の Web アプリケーションを (通常の Sinatra を書いているかのように開発するだけで) 書くことができます。 Web アプリケーション、およびノンブロッキング ライブラリの使用)」..

コールバックなしで websock プロトコルを使用する Sinatra::Synchrony "hello world" アプリをどのように実装しますか?

別の言い方をすれば、Sinatra::Synchrony と EM-Synchrony も websocket 部分をカバーしていますか? これに関する十分なドキュメントが見つかりませんでした...開始するための数行のコードを教えてもらえますか?

ありがとう

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

ruby - em-synchronyを使用してフレームワーク同期を正しく「レンダリング」する

私の問題を説明するために、単純な Cramp http://cramp.in/クラスを添付します。いくつかの変更を追加しますが、主にhttps://github.com/lifo/cramp-pub-sub-chat-demo/blob/master/app/actions/chat_action.rbのように機能します

私がやろうとしていることの詳細は、handle_message メソッドにあります。

クライアントに正しい順序でメッセージを送信しようとしました。最初にすべてのサブスクライバーにメッセージを発行し、次に現在接続されているクライアントに対してのみ内部情報をレンダリングします。

上記のコードの場合、クライアントは次を受け取ります。

おそらく em-hiredis の遅延可能な応答のため、同期されていません。だから私はこの方法でそれを同期しようとします:

現在、クライアントは正しい順序でメッセージを処理します。

私の質問は次のとおりです。

  • EM::Synchrony.next_tick ブロックにコメントすると、メッセージの順序が正しくありません。この例の EM::Synchrony.next_tick ブロックにはどのような意味がありますか?
  • これは Cramp または EventMachine とのインライン同期を処理する良い方法ですか?
  • それを処理するためのより良い、より明確な方法はありますか?

ありがとうございました!

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

ruby - EM::Synchrony.defer をファイバー対応データベース呼び出しで使用すると、FiberError 例外が発生します

アプリケーションの同時実行に EM-Synchrony を使用しようとしていますが、遅延コードとファイバーの使用で問題が発生しました。

EM.defer または EM::Synchrony.defer 内でデータベースを呼び出すと、アプリケーションがエラーでクラッシュします。can't yield from root fiber

以下は、私が達成しようとしていることの実行可能な例です。最初の印刷は機能して表示されます[:first, 1]が、2番目の印刷は上記のエラーでクラッシュする場所です。

私が最初に考えたのは、おそらく EM::Synchrony.defer 内の Fiber.current と Fiber.yield は、追加の Fiber.new 呼び出しで問題を解決できるということでした。

これも実行に失敗しますが、今回はエラーが発生しますfiber called across threads

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

ruby-on-rails - スタンドアロンモードの Websocket-rails gem

初めてwebsocket-rails gemを使用しています。スタンドアロン モードでイベントをトリガーしようとすると、サーバーがエラーで落ちます。ただし、スタンドアロン モード = false の場合、エラーは発生しません

これは完全なスタック トレースです

何か案は?

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

ruby - Ruby の並列実行

私は現在、リモート SSH サーバーに接続し、ファイルのサイズをチェックし、変更されているかどうかに関係なく結果を提供する小さな ruby​​ スクリプトを持っています。

問題は、このようなサーバーが約 10 台あることです。1つずつではなく、並列に接続してサイズを確認したいと思います。誰かがそれを達成する方法を教えてくれますか? EM-Synchrony もチェックしましたが、JRuby を使用するのが最も効率的だと思います。

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

ruby - FiberError: em-synchrony を使用して「スレッド間で呼び出されたファイバー」

sidekiq ワーカー内で em-synchrony と em-http-request (Ruby 2.1) を使用して、多数のリンクを同時にスクレイピングしています。スクレーパーで同時に複数のワーカーを実行しようとする場合を除いて、すべてがうまく機能します。これは私が使用しているコードです:

複数のインスタンスを同時に実行してこのワーカー プロセスを実行すると、最終的に次のエラーがスローされます。