問題タブ [nailgun]
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.
rspec - ネイルガンとスポークを使用してJRubyとRails2.3.10でrspec1.2テストを高速化しようとしたときにエラーが発生しました
最近、Rails2.3WebアプリでJRubyを使い始めました。それ以来、rspecテストで速度が低下しています... JRubyに切り替えてから、テストの実行に時間がかかりすぎています。
MRIを使用している間、テストをより速く実行するためにsporkを使用することは決してありませんでしたが、今度はテストの実行を高速化する必要があります。
最初に、私はスポークを試しましたが、次の理由でうまくいきませんでした:
- spork 0.9 RCはjrubyをサポートしますが、レール2.3はサポートしません(レール3 のみをサポートします)
- spork 0.8はrails2.3をサポートしていますが、 jrubyはサポートしていません。fork ()を使用していると思います。spork - 0.8gemはjrubyにイベントインストールされません)。
jruby、rails 2.3、spork 0.9 rcでテストを実行しようとしましたが、機能しませんでした。実際、 spork0.9rcはrails>=3.0のみをサポートしているという警告メッセージが表示されました。
次に、nailgunを試し、jruby環境にnailgun gemをインストールし(gem install nailgun)、nailgunサーバー(アプリのルートにあるruby --ng-server )を起動しました。次に、自分の仕様の1つを実行します(ruby --ng -S spec spec / lib / importacao_atividades_spec.rb)。初めてスペックを実行したときは問題なく動作しましたが、その後もRuntimeErrorが発生し続けました:無効なランタイム
トレースを確認します。
だから私は本当にここで立ち往生しています。ネイルガンの問題を解決する方法を知っている人はいますか?そうでない場合、代替手段はありますか?jrubyとrails2.3でsporkを使用することは可能ですか?
java - ネイルガンがコマンドライン引数をキャッシュするのはなぜですか?
ネイルガンを介して Jython プログラムを実行すると、jython プログラムは常に、最初に実行されたときのコマンド ライン引数で実行されます。
まず、ネイルガンを開始します。
次に、単純な jython スクリプトを実行すると:
次に、jython をネイルガンのクラスパスに追加します
次に、引数として「first」という単語を指定してスクリプトを実行します。
「second」という単語を引数として再度実行すると、「first」が出力されます
それ以降は常に「最初」に出力されます。
java - NailgunサーバーでGroovyスクリプト(またはJavaクラス)を開始する方法
頻繁に起動される(かなり小さなタスクを実行する)Groovyシェルスクリプトを開発しているため、JVMの起動時間を短縮する必要があります。それを達成するために、私はネイルガンでそれを起動しようとしています。
NailgunをUbuntuパッケージとしてインストールしました。次に、にリンクして引数のバグを修正しました。私はこのようにNailgun-Serverを起動しています:/usr/bin/ng-server
/usr/bin/ng
ネイルガンサーバーをテストするためだけに、hello.groovyという名前のこの単純なダミーのGroovyスクリプトがあります。
groovycを使用してファイルをhello.classにコンパイルしました。
次に、Nailgunサーバー内でそのスクリプトを起動します。それを行うための私の素朴なアプローチは次のようになります。
しかし、私が得るのはClassNotFoundExceptionsだけです。
では、NailgunサーバーでGroovyスクリプトを起動する正しい方法は何ですか?また、ネイルガンの使い方に関するいくつかの良いサイト/チュートリアルをいただければ幸いです。ネイルガンの使い方に関する情報を得るのは本当に難しいです...
編集:
また、純粋なJavaクラスでネイルガンを使用するための完全な例(特定のクラスがngで呼び出される方法を含む)もありがたいです。ngをJavaクラスで動作させることもできなかったからです。
java - JRubyをnailgunで使用しているときにレール/ウェブリックを停止/開始する方法は?
これはおそらくばかげた質問ですが、自分で調査するのはあまり楽しいことではありません。
rvm 経由でインストールされた OSX (Snow Leopard) で JRuby 1.6.4 を使用します。
ネイルガンを有効にしました。
rails/webrick (rails s) を起動でき、問題ないようです。
今、レールを停止/開始したいのですが、どうすればいいですか?
Railsコマンドを強制終了するように見える通常のControl-Cを実行しましたが、実際にはバックグラウンドのnailgunデーモンで実行されているため、強制終了されません。
ここで Rails を再起動すると、使用中のポート 3000 に関するエラーが表示されます。これは、2 番目の webrick を開始しようとしています。
(kill を使用して) バックグラウンド デーモンを強制終了すると、JRuby は起動に失敗します (接続が拒否されます)。新しい端末ウィンドウを起動すると、これが修正されるようです。
これはこれを行う正しい方法のようには思えませんが、それは何ですか?
HeadiusのガイドとNailgunプロジェクトページを見てきましたが、どちらもそこまで進んでいません...
performance - groovyservやnailgunなどでgradleの起動時間を改善する
Gradleの起動時間を改善しようとしています。実験的な--daemon
スイッチは実際にはそれをスピードアップしていないようです。そこで、gradleとは独立したサーバープロセスを使用して、gradleをそれに接続することを考えています。私がこれまでに見つけたオプションは
- Javaを呼び出すネイルガン
- GroovyServを使用してGroovyスクリプトを呼び出す
gradleはシェルスクリプトによって開始されるため、多少の調整が必要です。私の質問は:誰かが上記のオプションを使用してgradleを開始したことがありますか?または、別のオプションを正常に使用した場合、それは何ですか?
clojure - ネイルガンサーバーが「ファイルの名前空間を特定できませんでした」というエラーをスローするのはなぜですか?
私はvimclojureを動かそうとしています。私が間違ったことについて助けていただければ幸いです。lein プロジェクトの 1 つで project.clj を読み取ろうとすると、次のエラーが発生します。
~/.vimrc の関連する行は次のとおりです。
そしてnailgunはCLASSPATHにあります
何が欠けているか、および/または何が間違っていますか? ありがとうございました。
clojure - VimClojure が NGServer と通信できない
次の手順を使用して、Vim を Clojure プログラミング環境としてセットアップしようとしています。
ng-server
Leiningen プロジェクトのルートから開始できます。しかし、vim で repl を開始しようとすると、次のようになります。
VimClojure
プラグインをインストールして、次の行を.vimrc
ファイルに追加しました。
RainbowParens
ng
動作しており、コマンド ラインから応答を取得できます。
私も試しslime.vim
ました。(+ 2 3)
動作している間は、単純な入力に応答するのに丸 5 秒かかりますvim
。
ヘルプ?
ruby-on-rails - Nailgun モードの JRuby 1.7 で Rails アプリが起動しない
JRuby 1.7.2 を RVM にインストールし、gemset を作成し、bundle install を実行しました。今、私はこれを実行します:
ターム1:
ターム 2:
問題は何も起こらないことです.両側の端末は何も印刷せず、永遠にハングアップします. 上には、Java/jruby プロセスが動作していることは示されていません。
--ng なしでアプリケーションを起動しようとすると、問題なく動作します。どうした?バンドラー?
ファイアウォールはもちろん無効です。
java - Java -> JNI 上の SWIG を使用した C++ 通信。C++ エラーとメモリ リークから保護する
Java の別のチームによって開発された C++ ライブラリと通信したいと考えています。
これまで見てきた自然で最適なアプローチは JNI を使用することですが、開発中は簡単にするために SWIG を使用します。
私たちは実際にプロトタイプを開発し、うまく機能しています。SWIG Director を使用した最初の Java->c++ 通信の後に、C++->Java 通信もあります。
これまで見てきた主な問題は、メモリ破損やメモリ リークなど、C++ ライブラリで発生する可能性のあるエラーにさらされることです。
これらのエラーから効果的に保護する方法はないようです。たとえば、C++ で中止 (不正なメモリ操作をシミュレート) を実行すると、JVM が強制終了されます。
私たちが考えた解決策は、JBoss で実行される親 JVM からいくつかの Java プロセスを起動することであり、それを保護したいと考えています。
基本的に、最初にJVMを起動する必要があるため、Javaプロセスの起動は困難です。
この場合、私たちが考えた解決策は、複数の Nailgun サーバーを使用することです。それぞれがJVM広告をロードし、起動したいプログラムに(クラスパスで)アクセスできます。
各 Nailgun サーバー (関係は 1-1) の各 JVM は、同じ JVM でプログラムの複数の実行を同時に実行できます。エラーが発生すると、この Nailgun JVM でのすべての実行がクラッシュします (ただし、JBoss JVM は動作します)。このため、実行数を制限したいくつかの Nailgun サーバーを用意し、何らかの負荷分散を使用して実行を任意のサーバーにディスパッチするようにスケジュールしました。さらに、メモリ リークを防ぐために、Nailgun サーバーは定期的に再起動されます。
これは、C++ のクラッシュから保護するための優れたアプローチであると考えています。
ただし、より良いアプローチがあるかどうかコミュニティに尋ねたいと考えています。
私たちが検討しているもう 1 つの解決策は、フェールオーバーの理由から、war に JBoss をクラスター化することです。そして、C++ プログラムの信頼性に応じて、Nailgun サーバーを組み込むかどうかを決定します。純粋な JBoss クラスター化アプリケーション (Nailgun プロセスなし) の利点は、プロセス間通信が一切必要なく、操作全体がスレッドを使用するプロセスで実行されることです。
java - ネイルガン使用時のScalaコンパイルサーバーエラー
現在、IntelliJ Idea 13.0 Build 132.197 を使用していますが、Scala プロジェクトをビルドするときにこの問題に頻繁に遭遇します。
このエラーは、開いているプロジェクトが 1 つだけで、他のプロセスでネイルガンを使用していない場合に発生します。プロジェクトを閉じて再度開くことはできません。IntelliJ を終了して再起動した後も、同じエラーが発生します。
Windows タスク マネージャーにjava.exe
、次の詳細を含むプロセスが表示されます。
これはネイルガンの設定の問題でしょうか?