問題タブ [hotswap]
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.
java - Java ホットスワップの制限
Javaホットスワップ機能により、多くの時間を節約できます。ただし、多くの制限があります (スキーマの変更がサポートされていないなど)。制限がすぐに対処されるかどうか、何か考えはありますか? このフォーラムのエントリによると、無視されているようです。
JRebel のような製品が役立つことはわかっています。しかし、これのためのオープンソースツールについて知っている人はいますか?
versioning - ホットコードスワップのあるプログラミングプラットフォームを探しています
私は現在、実行中のプログラムをアップグレードする方法についてブレインストーミングを行っています。(デバッグ中ではなく、「本番」システム。)
ただし、そのために必要なことの 1 つは、変更されたソース コードまたはコンパイルされたバイト コードを実行中のプロセスに実際に送信することです。
疑似コード
まず、オブジェクト指向の複雑さなしに動作するシステムを実現したいと考えています。これは、次の要件につながります。
- 関数のソースコードまたはバイトコードを変更する
- ドロップ関数
- 新しい機能を追加
- 関数のシグネチャを変更する
.NET (およびその他) を使用すると、IoC を介してクラスを挿入できるため、ソース コードを変更できます。しかし、すべてがアセンブリ内にあるか、Emit を介して作成されている必要があるため、読み込みは面倒です。たぶんJavaでこれは簡単になるでしょうか?ClassLoader 全体が交換可能だと思います。
JavaScript を使用すると、多くの目標を達成できました。新しい関数 (MyMethod_V25) を評価して、MyClass.prototype.MyMethod に割り当てるだけです。「del」で何とか機能を落とすこともできると思います
そのようなことを処理できる汎用プラットフォームはどれですか?
erlang - Erlang の gen_server でコード スワッピングを実現する
再起動する必要がないように、gen_server で Erlang のホット コード スワップ機能を利用したいと考えています。どうすればいいですか?検索したところ、コールバックを利用する必要があると述べた記事が 1 つしか見つかりませんでしたgen_server:code_change
。
ただし、これを使用する方法に関するドキュメント/例は実際には見つかりませんでした。ヘルプやリソースへのリンクは大歓迎です!
python - インスタンスメソッド内のクラスインスタンスを変更する
次のコードを機能させる方法があるかどうかのアイデア
より複雑なオブジェクト(djangoモデルなど、インスタンスが参照しているdbエントリをホットスワップするため)に安全に使用できる次のようなものです。
erlang - Erlang以外の他の言語には、実行中のインスタンスにコードを送信する機能がありますか?
私は、Erlangが「nl」コマンドを使用してクラスターのすべてのインスタンスにコードとモジュールをリモートロードできることを学びました。他の言語でこれを行うことはできますか?
java - 「ホットコード置換」が機能しない-EclipseはJBossのコードを変更しません
現在、EclipseGalileoおよびJBoss4.2.3で「ホットコード置換」が機能しないという問題が発生しています。
他のアプリケーションの中でも、ローカルのJBossで展開されたJavaWARを実行しています。ビルド元のプロジェクトはMavenによって管理されています。Mavenゴールwar:explodedを使用してプロジェクトをビルドし、ANTスクリプトを使用してそのディレクトリをJBossにコピーします。
アプリケーションを実行してコードの任意の場所にブレークポイントを設定すると、Eclipseはデバッグモードでその行で適切に停止します。しかし、ソースファイルに変更を加えて保存する場合、Eclipseはこの変更をJBossに適用しません。たとえば、通常のコード行をコメントにすると、デバッガーは通常のJavaコードであるかのようにこのコメントをステップオーバーします。または、行を削除すると、デバッガーがファイルと同期していないように見え、括弧のステップオーバーを開始します。
しかし、「ホットコード置換エラー」メッセージも表示されません。Eclipseは変更をソースファイルに適用しているように見えますが、JBossには適用していません。
ホットコード置換を機能させるためにオンにする必要がある特別な設定はありますか?または、アプリケーションをビルドしてJBossにデプロイする方法に間違いはありますか?
erlang - Erlang でのコードのホットスワップ
最近、InfoQ で Erlang に関するビデオを見ました。そのビデオでは、作成者の 1 人がメッセージ ループの動作を置き換える方法を紹介していました。
彼は単純にメッセージ ループ コードの新しいバージョンのラムダを含むメッセージを送信し、古いループを再度呼び出す代わりに呼び出しました。
そのコードは、Erlang で参照されているホットスワップですか? それとも、他のよりネイティブな機能ですか?
eclipse - Eclipse ホット コード置換の失敗 - Web アプリケーションを再公開する
Tomcat の Web アプリで Hot Swap Java デバッグ機能を使用しています。クラス署名をいくつか変更した後、「Hot Code Replace Fail」という Eclipse ダイアログが表示されました - それは理解しています。
このような場合に私が望むのは、アプリケーションを再発行し (私はそれを行うことができます)、新しくデプロイされたコードを操作することです。ただし、サーバーを再起動するまで、デバッガーはまだ文句を言います。他のアプリや起動時間が長いので、私はそれを望んでいません。
デバッガーに、新しい webapp クラスローダーに既にリロードされている新しいクラスバージョンがあり、続行するために保存されていることを伝える方法はありますか?
ありがとう。
c++ - c++SERVERアプリのオンライン更新メカニズム
このトピックについて何も見つかりませんでした。
時々更新したいWindowsTCPC++サーバーアプリケーションがあります。
あなたが明らかに理解しているように、これは問題を引き起こします-サーバーはユーザーの観点から24時間年中無休である必要があります。
更新するときは、ユーザーとの現在のTCP接続を維持することも望まれます。
私はモジュールのようなシステムについて考えていたので、たとえば、ソケット処理モジュールは「sockets.dll」にあり、サーバーのロジックは「logic.dll」にあります。
このアプローチを採用することは、Pandoraのボックスを開くように見えます。
-モジュールの実際の「交換」をどのように行うのですか?Xワーカースレッドが1つのモジュールから別のモジュールにデータを送信し続けると想像してください。スワップするときは、それらを停止/一時停止するための(軽くて速い)方法が必要になります。多分信号?
-プロトコルバージョン、または関数のシグネチャでさえ、更新時に変更される可能性があります。それをどのように処理しますか?
-見過ごされている論理バグなどの他の問題。
-他の問題が発生することを誰が知っていますか。
上記に加えて、10台のサーバーを更新するにはどうすればよいですか?つまり、それらはすべて互いに接続され、通信しています。
更新によってプロトコルの変更が導入された場合、大きな問題が発生する可能性があります。そのような場合は、(サーバーの)クラスター全体を全体として更新する必要があります。操作全体をシャットダウンしますか?それはまったく正しく聞こえません!それ、どうやったら出来るの?ここで欠けている概念と、それをどのように学ぶのですか?
それについて私にできることはありますか?
あなたならどうしますか?あなたはそのようなことをしましたか?
問題を解決するメカニズム/記事/プロジェクト/ソース例/その他を知っていますか?
貴重なアドバイスは大歓迎です!!
python - Python でのホット リロード / スワッピング
開発中にコードの変更をすぐに有効にしたい。変更されたファイルを検出して、実行中の Python (2.7) アプリケーションに再ロードするにはどうすればよいですか?
編集:
「Ivo van der Wijk」によってリンクされたページを読んだ後、Django のように、コードが変更されたときに Web アプリケーションを再起動するのが最善だと思います。したがって、実際の質問は次のとおりです。ファイルの変更を監視する方法は?