問題タブ [persistent-connection]
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.
php - PHPUnit 再利用 PDO 接続
私は数時間掘り下げてきましたが、複数の単体テストで単一の PDO 接続 (MySQL) をリサイクルする方法が見つかりません。そんな動物いる?
ブートストラップで何らかの形で宣言する必要があるようですが、PDO 接続をシリアル化できないため、テストが中断されます。
多くのテーブルでスキーマに対してデータセットをテストしたいので、毎回新しい接続のためにデータベースにアクセスしたくありません。
push-notification - 永続的な tcp/ip 接続はどのようにバッテリーを維持し、帯域幅の使用を抑えますか?
Apple の Push Notification Service のようなプッシュ通知メカニズムでは、永続的な IP 接続を使用します。
私の質問は、永続的な接続を採用すると、デバイスのバッテリーと帯域幅がどのように節約されるのでしょうか? 接続が永続的であるため、デバイスは常に WiFi または 3G/LTE 無線を使用するという印象を受けます。
永続的な接続を使用すると、サーバーに変更がない場合にサーバーに変更を要求しないことで帯域幅を無駄にせず、代わりにサーバーがこれらの変更を「プッシュ」することを知っています。しかし、それがバッテリーと帯域幅をどのように維持するかはわかりません(サーバーへの常時接続があるため)。
同様の質問がここにあります:
Android C2DM は帯域幅の使用をどのように改善しますか?
しかし、答えは十分ではないと思います。
java - Java SSLSocket は存続しません (HTTPS 持続接続が必要です)
Java Sockets を使用してクライアント サーバー プログラムを作成しましたが、問題なく動作します。現在、クライアントとサーバー間の通信のために HTTPS に移行しようとしています。
私のコードは Java 組み込みソケット (Socket および ServerSocket) に基づいており、問題なく動作します。しかし、残りのコードを変更せずにHTTPS ソケット ( SSLSocketおよびSSLServerSocket )を使用すると、残念ながら機能しなくなります。
プログラムは、サーバーとクライアントが数分間データを送受信できるようにするために、サーバーとクライアント間の永続的な接続を必要とします。問題は、最初のトランザクションが完了した後、サーバーまたはクライアント側で HTTPS 接続が閉じられたことにあるようです。
より正確に言うと、次のようになります。
1. サーバーは SSLServerSocket を作成し、それに対して「accept()」を呼び出します。
2. クライアントは SSLSocket を作成し、サーバーに接続します。次に、「DataOutputStream」を介してサーバーに書き込みます
。 3. サーバーは、「DataInputStream」を介してクライアントを読み取り、「DataOutputStream」を介して応答を返します。
4. クライアントは「DataInputStream」を介してサーバーを読み取ります。
今まで大丈夫です!しかしその後、クライアントが別のストリームを送信すると、サーバー側では、以前に使用されたのと同じメソッドを介してサーバー上で「available()」されるデータはありません。
この接続を維持する方法はありますか?
Tnx for ur は事前に役立ちます!
django - マルチスレッドスクリプトでdjangoの永続的な接続を使用してdb接続を閉じる
Django 1.6 では、Persistent Connections 機能が導入されました。ただし、django の ORM を使用するスクリプトを終了すると、db 側で少なくともいくつかの接続が開いたままになることに気付きました。
セットアップ: django 6.0、postgres 9.2、psycopg2 2.5.1。
スクリプトからデータベースへの接続を適切に閉じるにはどうすればよいですか?
注意事項のセクションでは、django がスレッドごとに接続を開くことについて言及しているため、マルチスレッド スクリプトでは、db にアクセスしないスレッドであっても、django はスレッドごとに接続を作成しますか?
各スレッドは個別にデータベース接続を閉じる必要がありますか?
上記の両方の質問に対する答えが「はい」の場合、スクリプトの終了時に参加しないデーモン スレッド (comm など) で何ができますか?
mysql - PHP NGINX PHP-FPM、フォークが必要/可能ですか?
PHP (5.5)、NGINX (1.1.19)、および PHP-FPM を含むセットアップを使用し、MySQL (5.5.34) をデータベースとして使用し、多くのストアド プロシージャを使用しています。
ストアド プロシージャを使用している理由について詳しく説明したくはありませんが、私が知る限り、永続的な接続を使用することをお勧めします。これは、ストアド プロシージャがすべての接続で読み込まれ、速度が低下するためです (それでも真実?)。
さて、私の知る限り、永続的な接続を行うにはいくつかの子プロセスが必要ですが、PHP-FPMでそれが必要/可能ですか? 私はこれについてさまざまなことを読んだことがありますが、完全にはわかりません。
主な質問は、基本的に次のようになります:上記のセットアップ (PHP-FPM、NGINX、MySQL) を使用する場合、MySQL への永続的な接続を使用/処理する最良の方法は何ですか? 出来ますか?そうでない場合、可能な回避策は何ですか?
前もって感謝します!
php - PHP コマンド ラインの永続的な接続
ブラウザから呼び出されたApache経由で完全に機能するPHPスクリプトがありますが、コマンドラインで呼び出された同じコードは、呼び出しのたびにデータベース接続を切断するようです。
たとえば、インクルードされたファイルには次のようなものがあります。
次に、私のスクリプトには次のものがあります。
これは正常に動作しますが、その後すぐに次のことがありました。
そうではなく、戻ります:
ここで、新しい接続を追加すると、つまり、2 番目の呼び出しの上のインクルード ファイルに接続をコピー アンド ペーストすると、すべて正常に動作します。
私の最初の質問は、PHP がスクリプトの期間中接続を開いたままにしないのはなぜですか?
それでは、2 番目の質問に移ります。テストとして、PDO を介したデータベースへのすべての呼び出しの前に接続を追加しました。このスクリプト内で、実際には 2 つの異なるサーバーに接続しているため、次のような別の接続が定義されています。
もちろん、動作させるために、ローカルデータベースへの呼び出しの上にこの行を追加しました。ただし、このコードでは:
最初のバインドで同じエラーが発生します。
これは、実行される最初のステートメントが beginTransaction であり、その後 PDO 接続が閉じられるという点で同じ問題だと思います。
前述のように、これはすべてApacheを介して正常に機能します。
すべての助けを感謝して受け取りました。
database - 永続的なデータベース接続
組み込みデバイスで実行する小さなプログラムを Java で作成しています。その目的は、クラウドにあるデータベースにいくつかの値 (温度としましょう) を保存することです。
- シナリオ 1: 可能なサイクルごとにデータが保存される (connect-store-store-store... -disconnect)
- シナリオ 2: データは 5 分ごとに保存されます (connect-store-wait-store-wait... -disconnect)
- シナリオ 3: データは 1 時間ごとに保存されます
データベースとの常時接続を維持するのと、必要な場合にのみ接続するのとではどちらがよいでしょうか? なんで?
このデバイスを 100 台デプロイするとどうなるでしょうか (1 台で十分な温度データを取得することはできません)。
php - 再利用可能な接続のプールを持つ PDO
標準の PDOクラス ( )DBPDO
を拡張するクラス ( と呼ばれる) を作成しclass DBPDO extends PDO {}
て、PDO に付属するすべてのメソッドとプロパティを取得し、クエリをさらに制御できるようにしました (つまり、開発時のプロファイリングなど... )およびクエリのコーディング時に作業を高速化できるメソッド。
私はこのクラスを改善したいと思います。Web サイト全体で作成されるすべての接続について考えています。ほとんどの接続は、独立したクエリを実行するためにさまざまなスコープ内で作成されます。だから私は疑問に思っています:なぜ私はieを作成しなければならないのですか? アプリケーションの 5 つの異なるメソッド/クラス/関数で 5 つの接続が必要ですが、それらすべてで同じ接続を使用できますか?
永続的な接続を使用したくありません (たとえば、PDO で永続的な接続を使用することの欠点は何ですか)。
インスタンス化されたときに、存在する場合はすでにアクティブな接続を提供するか、新しい接続を提供するクラスが必要です。
ただし、問題があります。クエリの結果にアクセスし、結果ごとに別のクエリを実行する必要がある場合はどうすればよいですか? 必然的に2つの異なる接続が必要です。したがって、新しい接続が必要か、使用済みの接続が必要かを、この新しいクラスに伝える必要があります。
PDOConn
静的メソッドgetConnection($forceNew = false) {}
と静的プライベート プロパティを使用して、新しいクラスを作成することを考えていました$Connections = array()
。
接続が必要なときは、次のように書きます。
PDOConn は、(既に動作しているクラス$Connections
のインスタンスの形式で) 少なくとも 1 つの接続が既に含まれているかどうかを調べ、そのオブジェクトを返します。DBPDO
が空の場合$Connections
、新しいオブジェクト ( のインスタンスDBPDO
) を作成し、そのオブジェクトを に追加して$Connections
返します。
新しい接続を強制的に作成したい場合は、次のように記述します。
そのため、新しい接続が作成され、 に追加され$Connections
ます。getConnection
新しい作成を強制せずに が再度呼び出されると、PDOConn
最初に作成された接続 (または最後の接続?) が返されます。
質問
これは良い方法、良いアイデアだと思いますか? より良い提案はありますか?何よりも、私がクラスの機能で考慮していなかったPDOConn
ことが、私が今理解していない問題を引き起こす可能性があると思いますか? そのようなクラスを書くことは、PDO 接続を管理する価値があると思いますか? つまり、新しい接続を作成する必要がないときに接続を再利用したかったので、このスレッドを開始しました。
ありがとうございました。