問題タブ [flush]
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.
log4net - log4netでバッファをプログラムでフラッシュする方法はありますか
AdoNetAppender で log4net を使用しています。AdoNetAppender にはFlush メソッドがあるようです。私のコードからそれを呼び出すことができる方法はありますか?
データベース ログのすべてのエントリを表示する管理ページを作成しようとしています。log4net を bufferSize=100 (またはそれ以上) でセットアップしたいので、管理者が管理ページのボタンをクリックできるようにしたいと考えています。ページを使用して、log4net がバッファリングされたログ エントリをデータベースに書き込むように強制します (log4net をシャットダウンする必要はありません)。
それは可能ですか?
nhibernate - nHibernate が第 3 レベルのプロパティをロードしない (フラッシュ不可能なキャッシュ)
Sharepoint ベースの ASP.NET プロジェクトの既存の nHibernate コードを、積極的な読み込みとデータベース ヒットごとの新しいセッションから、遅延読み込みと HTTP 要求の間のセッションに切り替え始めたところ、問題が発生し始めました。
このシステムでアイテムを作成すると、ドロップダウンによって入力される多対 1 の関係がいくつかあります。これで ID が取得され、データベースに保存するのに十分です。
電子メール通知などの保存後のタスクを実行するために、以前はオブジェクト ツリー全体が取り込まれていた同じアイテムを再度読み込みます。
ただし、遅延読み込みとリクエスト全体の有効期間を持つセッションへの変更以来、不可解な null である Item の下のプロパティから NullReferenceExceptions を取得しています。
nHibernate を介して changedItem にアイテムをロードします。失敗している呼び出しは次のとおりです。
PaperMedia は完全に入力されていますが、FormsAnalyst のすべてが ID を除いて null です。
これは保存したときと同じ状態であるため、この問題の考えられる原因の 1 つは、Item がキャッシュされ、単純に取得され、nHibernate がデータベースからの実際の値を認識していないことです。ただし、トランザクションをコミットし、保存と後続のロードの間にセッションで Flush() を明示的に呼び出しているため、その場合、Commit() も Flush() もキャッシュに影響しません。
関連する hbm.xml ファイルのこれらのプロパティを lazy="false" に変更し、それらすべてに SetFetchMode FetchMode.Eager を設定しましたが、効果がありません。
問題として max_fetch_depth も検討していました。セッションで Refresh(changedItem) を呼び出しても効果はありません。ただし、Refresh(changedItem.PaperMedia) を呼び出すと、Name まですべてが読み込まれます。これは問題として max_fetch_depth を軽視しているように見えますが、それでも私は hibernate.cfg.xml で 6 に設定し、構成インスタンスで SetProperty("max_fetch_depth", "6") に設定して、それを増やそうとしました。セッションファクトリの作成中に、これらも効果がありませんでした。
他に何を試すべきかわかりません。
前にそのようなものを見た人はいますか?私はnHibernateを初めて使用するので、簡単なものかもしれません...
編集:
キャッシングが実際に問題であるように思われます。セッション インスタンスで Clear() を呼び出すと、この動作が修正されます。
では、なぜ Flush() はキャッシュされたアイテムを更新しないのでしょうか? それはまさに私がそれを行うために構築されたと思ったことです。
c - stdin からの読み込みは stdout をフラッシュしますか?
stdout は端末に接続すると行バッファリングされますが、(少なくとも stdin から) 読み取ると stdout が自動的にフラッシュされることをどこかで読んだことを覚えています。私が使用したすべての C 実装はこれを行っていますが、現在は標準で見つけることができません。
そのように動作することは理にかなっていますが、そうでない場合は次のようにコーディングします。
余分に必要だろうfflush(stdout);
それで、標準出力はここでフラッシュされることが保証されていますか?
編集:
いくつかの返信が言っているように、私の例では stdout への出力が stdin からの読み取りの前に表示されるという保証は標準にはないようですが、一方で、この意図は (私の無料のドラフトコピー) に記載されています標準:
対話型デバイスの入力および出力ダイナミクスは、7.19.3 で指定されているように行われるものとします。これらの要件の意図は、プログラムが入力を待機する前にプロンプト メッセージが実際に表示されるようにするために、バッファなしまたは行バッファ付きの出力をできるだけ早く表示することです。
(ISO/IEC 9899:TC2 委員会草案 -- 2005 年 5 月 6 日、14 ページ)。
したがって、保証はないようですが、とにかくほとんどの実装でおそらく動作します。(有名な最後の言葉...)
spring - JPA 検出された再入可能フラッシュ
Spring 2.5でのjpaのopenjpa実装にはほとんど問題がありません。私のdaoメソッド:
org.springframework.dao.InvalidDataAccessApiUsageException: を返します。
// EntityManager 設定の編集:
EntityManage を取得するにはどうすればよいですか? ダオクラスで:
なにが問題ですか?何か案が?
python - Python で名前付きパイプがフラッシュされない
os.mkfifo() コマンドで名前付きパイプを作成しました。この名前付きパイプにアクセスする 2 つの異なる Python プロセスがあり、プロセス A が読み取り、プロセス B が書き込みを行っています。プロセス A は、select 関数を使用して、FIFO/パイプに使用可能なデータがあるかどうかを判断します。プロセス B は各書き込み呼び出しの後にフラッシュするという事実にもかかわらず、プロセス A の選択関数は常に戻るとは限りません (新しいデータがないかのようにブロックし続けます)。この問題を詳しく調べた後、最終的にプロセス B をプログラムして、実際の呼び出しの前後に 5KB のガベージ書き込みを追加しました。同様に、プロセス A はそれらの 5KB を無視するようにプログラムされています。これですべてが正常に機能し、選択は常に適切に返されます。私は、プロセス B が強制終了された場合にプロセス A の選択が返されることに気づいて、このハックっぽい解決策にたどり着きました (書き込みとフラッシュの後、読み取りパイプでスリープします)。名前付きパイプの Python でのフラッシュに問題はありますか?
java - ヘッダーがフラッシュされた後、Java の応答に Cookie を追加しますか?
何らかの処理を行ってから Cookie を設定するカスタム タグがあります。しかし、Cookie が設定されておらず、その理由がわかりませんでした。別の開発者は、タグが評価される時点でテンプレート システムを使用しているため、応答ヘッダーはインクルードの一部として既にフラッシュされていると指摘しました。ヘッダーが送信されているため、Cookie を追加することはできないようです (ただし、追加しようとしても状態例外はスローされません)。これを回避する方法はありますか?これは問題のように聞こえますか?
java - Java はどのように情報を送信しますか?
教えて。
Socket.getOutputStream.write(); を呼び出すとどうなりますか? 次に Socket.getOutputStream.flush(); ? 約 8162 バイト以上を送信したい場合は、このサイズに収まるバイトのみを送信するためです。そして、次のバイトは送信されません。
説明してください。
jquery - ブラウザーが部分的に送信された HTML のレンダリングを開始するのはいつですか?
実行時間の長いレポートがあり、生成中に待機スピナーをユーザーに表示したいと考えています。私はすでにこの作業を行っていますが、最善の方法または正しい方法で行っているかどうかはわかりません。
これは ColdFusion を使用していますが、私が推測する任意の言語である可能性があります。ページの上部には、待機スピナーを表示する Javascript (jQuery) と、スピナーを下げる documentReady ハンドラーがあります。出力をフラッシュし (問題がある場合)、残りのコードがレポートの内容に対して機能します。これは決してスピナーをレンダリングするものではなく、サーバー上で何かをフラッシュしていたとしても、途中で何らかのバッファリングが発生し、ブラウザーは手遅れになるまでスピナー コードを認識しなかったと理論付けました。そこで、数百行の HTML コメントを吐き出すループをフラッシュする直前に追加しました。行数を微調整した後、それでうまくいきました。そのとき、他のサイトもそうだったと思いました。
しかし、今日、長時間実行されるジョブのステータスを行ごとに出力する私の別のページを見ているときに、そのページが各行の後にフラッシュされ、ブラウザーがそれを必要に応じて段階的にレンダリングすることに気づきました。これは上記の私の結論と一致せず、ルールが何であるかわかりません。これを行う予測可能な方法はありますか?ブラウザごとに異なりますか?
明確化:待機スピナーを実行する正しい方法を説明しようとする回答に感謝しますが、実際の質問を説明するための例として待機スピナーを使用しているだけです:ブラウザーがいつレンダリングを開始するかを予測する信頼できる方法はありますかネット経由でストリーミングされる HTML は? ブラウザが /html タグの動作を開始するのを待たないことは、観察によって明らかです。この質問は必ずしも Javascript とは関係ありません。たとえば、ステータスを示す 2 番目のページは純粋な HTML です。
java - Java Socket OutputStream がフラッシュされない
私はJavaでソケットベースのサーバーを書いています。クライアントがそれに接続し(Webブラウザ)、サーバーは単純なhtmlコードを送り返し、次回クライアントが再度接続したときに認識するようにCookieを設定します。PrintStream を使用して socket に書き込みを行っていますが、フラッシュが機能していません。フラッシュできる唯一の方法は、shutdownoutput または close を使用し、両方ともソケット ストリームを閉じることです。しかし、コードのいくつかの場所で何度か読み書きしているので、それは望ましくありません。何ができますか?タグからの助けを得ることができませんでした。他のバッファ付きライタークラスも試しましたが、同じ問題です。
java - BufferedWriter でテキスト ファイルを更新する
BufferedWriter を使用してテキスト ファイルに書き込んでいますが、実行中のプログラムが終了するまで BufferedWriter はファイルに書き込みません。これが私が持っている私のコードの一部です:
BufferedWriter をフラッシュしますが、書き込むとすぐにファイルがありませんが、代わりにプログラムが終了したときです。助言がありますか?