:私は、パフォーマンスの最適化が仕事で発生するようBUGを共有会った前に私が記事を書いた非同期クエリターンシンクロトロンBUGシェアRedisのサービスの実装を。
最近、同様のタスクが発生し、一部のマルチクエリインターフェイスは非常に使用されるプログラムのパフォーマンス最適化サーバ・インタフェースを共有し、同期する。このターン、非同期クエリの最適化に適しているがあります。
個人的に私は次のような特徴について持っている(データの書き込みに別々の句を含む)このプログラムは、適切なクエリインターフェイスであることを考えます:
- 複数のクエリ
- クエリに長い時間
- 戻り結果は、お互いに依存しません
擬似コードは以下のように:
@Override
public void doExecute(Map<String, Object> dataMap) {
doSomething(dataMap);
CountDownLatch countDownLatch = new CountDownLatch(3);
teacherPadAsyncService.do1(dataMap, countDownLatch, params);
teacherPadAsyncService.do2(dataMap, countDownLatch, params);
teacherPadAsyncService.do3(dataMap, countDownLatch, params);
try {
countDownLatch.await();
} catch (InterruptedException e) {
logger.error("异步处理线程异常", e);
}
}复制代码
実装は春で、非常にシンプルである@Async
必要性は、いくつかの設定を変更するには、注釈、スレッドの安全性に、注意を払うし、それらを繰り返しません。
@Async
public void do1(Map<String, Object> dataMap, CountDownLatch countDownLatch, Params params) {
try {
dosomething(dataMap, params);
} catch (Exception e) {
dosomething();
} finally {
countDownLatch.countDown();
}
}复制代码
これは、他の最適化と共有する機会を持って、日常的な最適化プログラムと考えられます。
- 厳粛に宣言:最初の公開番号「FunTester」に登場した記事、(テンセントクラウドを除く)第三者再生を禁止し、公開します。
技術関連記事
- 中国語版netdataソフトウェアを監視し、Linuxのパフォーマンス
- パフォーマンステストフレームワーク第三版
- どのように楽しいパフォーマンスLinuxのコマンドラインインターフェイスをテスト
- 脳HTTPは、図に示しました。
- 自動的にテストコードになり闊歩ドキュメント
- セレン4.0アルファの更新ログ
- セレン4.0アルファの練習の更新
- 機能、自動化とパフォーマンスのテストケースをテストする方法統一されたインタフェース