問題タブ [executioncontext]
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.
scala - Play 2.1 以上の同時実行
Play で同時実行を処理する方法に関するいくつかのチュートリアルを読み、いくつかの例を見つけました。
非同期ジョブ
スケジュールされたジョブ
さて、私は少し混乱しています...最初の例では を使用scala.concurrent.ExecutionContext.Implicits.global
し、2 番目の例では を使用していますplay.api.libs.concurrent.Execution.Implicits.defaultContext
。なんで?舞台裏で何が起こっているのか誰か説明してもらえますか?
wcf - 非同期 WCF 終了メソッドの間違った Thread.CurrentPrincipal
Thread.CurrentPrincipal
にセットを持つWCFサービスがありServiceConfiguration.ClaimsAuthorizationManager
ます。
次のようにサービスを非同期に実装すると:
Thread.CurrentPrincipal は、Begin メソッドと WorkerFunction で正しい ClaimsPrincipal に設定されていますが、End メソッドでは GenericPrincipal に設定されています。
サービスの ASP.NET 互換性を有効にしHttpContext.Current.User
て、すべてのメソッドで正しいプリンシパルを使用できることはわかっていますが、これは行いたくありません。
ASP.NET 互換性をオンにせずに Thread.CurrentPrincipal を正しい ClaimsPrincipal に強制する方法はありますか?
scala - Scala: 将来の理解のための ExecutionContext
を作成したり、 や のようなメソッドを適用したりするときに、future
それらに ExecutionContext を指定できます。onSuccess
map
例えば、
ただし、将来の for-comprehension を使用する場合、その部分に ExecutionContext を指定するにはどうすればよいyield
ですか?
そして、指定されていない場合、どの ExecutionContext がコードを生成して実行しますか?
編集
わかった。回答のおかげで、私は何かを見つけました。暗黙のExecutionContext (のような)
を定義またはインポートしないと、for-comprehension はコンパイルされません。つまり、for-comprehension は暗黙の ExecutionContext を使用します。Implicits.global
では、暗黙の ExecutionContext なしで for-comprehension を使用するにはどうすればよいでしょうか、つまりどのように指定すればよいのでしょうか?
spring - 複数入力ファイル Spring Batch
ファイルを含むディレクトリをSpring Batchで処理できるバッチを開発しようとしています。
私はMultiResourcePartitionerを見て、次のようなものを試しました:
しかし、私が得るものは:
私が探しているのは、file:${import.contract.filePattern}に含まれる各ファイルに対してジョブimportOneContractESTDを起動する方法です。そして、各ファイルはステップcalculateMD5 (処理されたファイル md5 を自分の jobContext に入れる) とステップimportContract (jobContext から前の md5 を読み取り、contractProcessor によって処理される各行にデータとして追加する) の間で共有されます。
パラメーターとして指定された 1 つのファイルを使用して importOneContractESTD のみを呼び出そうとすると (たとえば、#{stepExecutionContext[inputfile]}を${my.file}に置き換えます)、機能します...しかし、Spring バッチを使用して自分の私の呼び出しシェルスクリプトではなくディレクトリ...
あなたのアイデアをありがとう!
scala - スカラ実行コンテキストの枯渇を検出するには?
Playframework アプリケーションが時々応答しないという問題があり、実行時にこれを検出し、使い果たされた実行コンテキストで現在実行されているものに関する情報をログに記録したいと考えています。
これを実装するための最良の戦略は何でしょうか? 小さなランナブルを実行コンテキストに投稿することを考えました。それらが時間内に実行されない場合は、警告をログに記録します。もちろん、この最大待機時間は構成可能である必要があります。たとえば、メインの Web 実行コンテキストは 1 秒以上ブロックされるべきではありませんが、バックグラウンドのデータベース実行コンテキストでは 30 秒のブロックが許可される場合があります。
誰かが以前にこれを行ったに違いありませんか?
関連情報: http://www.playframework.com/documentation/2.2.x/ThreadPools
javascript - ネストされた実行コンテキストの有効期間
javascript クロージャーに関する記事をフォローしています。
実行コンテキストの詳細を知ろうとして、私は驚くべき結果に出くわしました。
これは実際に出力しますi o g
。
私は見ると思っていましたi undefined g
。
これがプロセスの私の理解です。エラーを理解したい:
inner
グローバルオブジェクトのプロパティとして宣言され、値がに設定されますundefined
outer
が呼び出されます。outer
スコープ チェーンにouterVar
グローバル オブジェクトが含まれる実行コンテキストが作成されます。- グローバル オブジェクトのプロパティの値には
inner
、関数定義への参照が割り当てられます。 - 終了の実行コンテキスト
outer
。(関連するスコープは削除されていますか? GC 用にマークされていますか?) inner
が呼び出されます。innerVar
スコープ チェーンにグローバル オブジェクトが含まれる実行コンテキストが作成されます。outerVar
範囲内に見つかりません
outerVar
が定義されている理由を誰か説明してもらえますか?
asp.net - 自分のコンテキストのフローを提供するには、ExecutionContext をどのように使用すればよいですか?
更新:
同様の質問が見つかりました。
ASP.NET アプリケーションの AmbientContext デザイン パターンに従っていくつかのサービスを実装したいと考えています。
たとえば、ユーザー名 (Thread.CurrentPrincipal など) を要求処理の最初に 1 回設定し、非同期操作が実行されるときにスレッド間をフローする必要があります。
したがって、データを ExecutionContext にアタッチし、リクエストが処理されるときにデタッチする必要があります。
残念ながら、私はそれを行う方法がわかりません。
ドキュメントには小さなヒントしかありません:
内部的には、ExecutionContext は LogicalCallContext に関連付けられているすべてのデータを格納します。これにより、ExecutionContext がコピーおよび転送されるときに、LogicalCallContext データを伝搬できます。
java - Scala ExecutionContext のシャットダウン ポリシーを構成するにはどうすればよいですか?
map
私は最近、返される関数がFuture[T]
順次実行されているマシンで奇妙な動作に遭遇しました。これと同じ問題は他のマシンでは発生しません。作業は期待どおりにインターリーブされます。これは、Scala が少し賢すぎてExecutionContext
、マシンのリソース (1 つのコア、1 つのワーカー) に一致するものを選択したためである可能性が高いことを後で発見しました。
問題を再現する簡単なコードを次に示します。
奇妙な動作を示すマシンでこれを実行すると、次のような順次出力が生成されます。
カスタムの提供ExecutionContext
:
スレッドがこのマシンでインターリーブできるようにします。しかし、ここで新たな問題が発生しました。スレッド プールがシャットダウンせず、プログラムが無期限に停止します。どうやら、これはs の予想される動作であり、どこかFixedThreadPool
に置くことでシャットダウンできます。pool.shutdown()
私を頑固と呼んでください。しかし、スレッド プールにシャットダウンを指示する必要はありません。デフォルトのプールと同じように、すべてのキューが空になったときに (おそらく少し遅れて) シャットダウンするようにプールを構成する方法はありますか? ExecutionContext
ドキュメントに目を通しましたが、探しているものが見つかりません。