問題タブ [celluloid]

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

ruby - Celluloid でプラグインの実行を並列化するにはどうすればよいですか?

私の質問は、私が正しい道を歩むのに役立つはずです。

コンカレント フレームワークを使用して ruby​​ アプリケーションを開発していますcelluloid。これがどのように見えるか:

アクティビティ

私はいくつかのプラグインを持っています。それらを同時に実行し、最後のものが終了するまで待ちたいと思います。すべてのプラグインに継承され、メソッドPluginFrameも提供するという抽象クラスがあります。run

  1. を作ろうと思ったのSupervisionGroupですが、それでよろしいでしょうか?
  2. SupervisionGroupを実行して、すべてのグループ メンバーが終了するまで待つにはどうすればよいですか?
  3. PluginPoolプラグインのプールを管理するために別のクラスを作成するのは良い考えですか?
  4. サイズを制限することも興味深いpoolので、同時に実行できるプラグインは 2 つまたは 3 つだけです。どうすればこれを達成できますか?
0 投票する
1 に答える
100 参照

ruby - 古い ruby​​ での新しい gem のサポート (ここでは Celluloid)

バックポートなどを使用して、インストールされているものよりも高いバージョンの ruby​​ を必要とする gem をインストールして使用することは可能ですか?

私は 1.8 で立ち往生しており、rspec との関係で celluloid gem に問題があります。Ruby 1.9.2以降のほとんど/すべての機能が利用可能になるため、バックポートを使用すると使用できるようになるのではないかと思いました。

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

ruby-on-rails - Meteor.js クライアントで Rails を DDP サーバーとして使用する方法

HTTP API のみを実行する Rails アプリがあります。クライアント側では、現在 Ember.js が使用されています。私たちは Ember にあまり感銘を受けておらず、Meteor.js のアプローチがとても気に入っています。したがって、クライアント側を Meteor.js と交換し、Data Distribution Protocol (DDP) を使用する websocket を介して Rails サーバーと通信することで、Rails のモデル、メーラー、およびコントローラーを引き続き使用できるようにします。DDP のサーバー側の実装は簡単なはずです。

ただし、Rails で websocket を使用する方法は不明です。スタンドアロン環境で websocket リクエストを簡単に受け入れることができる Reel を見つけました。とにかくセルロイドスタックの上にDDPを実装したいので、リールは素晴らしいようです。しかし、Rails 環境で Reel を実行する場合はどうでしょうか? そのために「レールランナー」が必要ですか?そして、既存のコントローラーを引き続き使用して、着信要求をディスパッチしたいと考えています (リソースの追加/変更/削除など)。リクエストがRackを経由しなくても、それは可能ですか?

どんな入力でも大歓迎です。

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

ruby - Celluloid Actorでn秒ごとにブロックを呼び出す方法は?

&block をパラメーターとして受け入れ、n 秒ごとに実行できるセルロイド アクターを作成しようとしています。しかしcall、ループ内からブロックするeveryと、何もしないように見えますか?

このクラスの例を見てみましょう:

次のことを試してみると:

次に、この紛らわしい出力が得られます。

execute_blockブロックの外側から初めて呼び出すと、正常に動作し、タイマーが正しく動作everyしていることがわかります...しかし、ブロックは毎回呼び出されるわけではありませんか?every

私が間違っていることに光を当てることができる人はいますか?

更新:をputs "tock" に移動する@block.callと、出力がまったく得られないことに気付きました...?

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

ruby - セルロイドタスクは終了しました

bundle exec guardGuard を使用している場合、cygwin で実行すると次のエラーが発生します。この問題以外に、このエラーについてはあまり見つけられないようです:

スタック レベルが深すぎる (SystemStackError) · 問題 #172 · ガード/リッスン · GitHub

誰か原因を知っていますか?または、Guard が cygwin で動作するかどうかは?

私のガードファイル:

どんな助けでも大歓迎です!

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

ruby - Celluloid で「タスクの終了」メッセージを停止するにはどうすればよいですか?

URLから読み取り、データを取得するワーカーがあります。したがって、プールを使用して、10 個の同時ワーカーの同時実行を実現しています。

上記のコードを some_name.rb という名前のファイルに配置して実行すると、次のようになります。

D, [2014-05-09T10:15:06.061071 #6588] DEBUG -- : 15 人のアクターを終了中... W, [2014-05-09T10:15:06.063755 #6588] WARN -- : 終了タスク: type=:ファイナライザー、meta={:メソッド名=>:シャットダウン}、ステータス=:callwait

私の質問は、これらのメッセージを一時停止するにはどうすればよいですか? begin..rescue でラップしても役に立ちません。また、警告が表示されるのはなぜですか。コードに何か問題がありますか?

ありがとう!

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

ruby - Ruby の短縮形、Artoo.io

artoo.ioロボットの上部で何が起こっているかについての説明を探しています。この例の先頭には、キーボード ドライバーを使用した宣言があります。

省略形/代替構文が表示されているようですが、その省略形の説明が欲しいです。代替ハッシュ構文を理解しています: :adapter => :keyboard.

上記の最後の 2 行のコードでは何が行われているのでしょうか? とはconnection? artoo初期化されているのは内部のクラスですか?なぜないのnewですか?どこ:keyboardから来たの?関係をより明示的に表す代替構文がある場合は、それも示していただけますか?