問題タブ [jruby-rack]
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.
sinatra - Sinatra アプリケーションを実行するための推奨される方法は何ですか?
編集: TorqueBox を使用してアプリケーションを動作させたので、問題はトリニダードに関連していると思います。ただし、Sinatra アプリケーションを実行するための好ましい方法についての私の意見はまだ有効だと思います。
JRuby、Bundler、およびモジュラー スタイルを使用しています。ここに私のアプリケーションコードがあります:
アプリケーションを起動する適切な方法 (つまり、コマンドの種類) は何ですか? 私は Trinidad を使用しています。これは、JRuby アプリケーションに適したソリューションであると読んだためです (TorqueBox を動作させることができませんでした)。現在、「trinidad config.ru」でアプリを実行していますが、次の種類のエラー メッセージがスローされます。
Trinidad and Rack のバージョン 1.4.1、JRuby の 1.7.0.preview1、および Sinatra の 1.3.3 を使用しています。
「bundle exec trinidad config.ru」を実行すると、次のエラーが発生します。
java - Jruby-rackでカスタムサーブレットを構成するにはどうすればよいですか?
Jruby-Rack Githubによると、コンテキストリスナーの代わりにorg.jruby.rack.RackServletを使用するように構成できます。
RackServletではなく別のカスタムサーブレットを使用できますか?または、org.jruby.rack.RackServletをオーバーライドできますか?
sinatra - jrubyでのsinatraアプリのパフォーマンス
私はsinatraアプリを持っていますが、これは私が望むよりもかなり遅いパフォーマンスです。私の最初の疑いは、ボトルネックとなっているのは自分のコードであるということです。そこで、スタンドアロンのベンチマークスクリプトにそれを抽出しました。
make_callsが自分のコードを呼び出す場所。100スレッドに達するまでに、すべてのスレッドでのmake_callsの累積時間は0.6秒であり、これは私の目的には十分な速さです。上記のスレッドでmake_callsメソッドをラップしている理由は、自分のコードがスレッド(java.concurrent.FixedThreadPool(500)を介したJavaネイティブスレッド)/ ExecutorServiceを使用しており、これが次のような環境で正常に動作することを確認したかったためです。他のスレッドモデルを使用する可能性があります。jrubyがウォームアップすると、1つのスレッドでの1回の反復は約0.02秒で実行されます。
したがって、上記は適切ですが、これをsinatraWebサーバーに次のように追加すると次のようになります。
このエンドポイントへのリクエストの応答時間は約0.5秒です-同時リクエストの数を増やすと、応答時間は直線的に増加します。Linuxとsolarisの両方でjruby1.7を使用して、jetty-rackupとtrinidadの両方を使用してこれを試しました。
トリニダードインスタンスを無駄に最適化しようとしました(最大/最小ランタイムなど)。私たちが見た中で最高のパフォーマンスは、いずれかのサーバーをスレッドセーフで実行することです。モードであり、両方のサーバーがこのモードで比較パフォーマンスを示します。
誰かが私に時間を費やしている場所やこの設定を改善する方法を説明できますか?
jruby - トリニダードを jruby-rack の代替バージョンに依存させる最も簡単な方法は?
現在の Trinidad gem は jruby-rack 1.1.0 に依存しており、アセットごとに開発ログにいくつかのエラーが表示されています。
/Users/bijan/.rvm/gems/jruby-1.7.3/gems/rack-1.4.5/lib/rack/utils.rb:399 warning: multiple values for a block parameter (2 for 1)
これは、現在の jruby-rack (1.2) マスター ブランチで明らかに解決されている問題であり、trinidad をこれに依存させたいと考えています。
Gemfile 内からこれを行う方法はありますか? または、Trinidad gem を fork して別のバージョンの jruby-rack を指定するよりも簡単な別の解決策 (そして、動作しない可能性があるため動作することを望みます)。
tomcat - jruby ランタイムと tomcat
Tomcat の下で jruby/rails アプリを実行していますが、使用しているコンポーネントの一部が原因で、すぐにスレッドセーフに移行できません。当面の間、perm-gen のメモリ不足エラーを防ぐためにjruby.runtime.minとjruby.runtime.maxを設定する予定です。残念ながら、これは同時ユーザーの数をかなり少数に抑えるので、私の質問はランタイムがいつリサイクルされるのかということです? それはセッションベースですか、それとも何か他のものですか。セッションタイムアウトを下げると、プールの可用性が向上するか、それ以上の効果があります。jruby ランタイムがどのように機能するかの詳細をよりよく理解するためのリンクをいただければ幸いです。
sinatra - sinatra Web アプリを weblogic 12 にデプロイできませんでした
Failed to deploy rails app to weblogic ....と同じ状況 です。
ただし、シナトラの「Hello world」の例では。Weblogic 12.変更されたweblogic.xmlは役に立ちません:(