ExcelDNAを使用してExcelアドインを作成し、UDF(ユーザー定義関数)を作成しています。サーバーへの接続数を減らすために複数の要求をパックする
UDFはサーバーへの接続を確立し、そのサーバーはSQLデータベースに接続してデータを取得し、クライアントに戻します。
ただし、このUDFは1つのワークシートで何百回も呼び出されることが予想されます。
私はサーバーへのリクエスト数を減らす方法を見つけようとしています。この瞬間のように、これはテンプレートが(簡体字)のように見える方法です
:
ITEM | JAN 2016 | FEB 2016 | MAR 2016 |
---------------------------------------------------
ITEM 1 | UDF | UDF | UDF |
ITEM 2 | UDF | UDF | UDF |
ITEM 3 | UDF | UDF | UDF |
ITEM 4 | UDF | UDF | UDF |
ITEM 5 | UDF | UDF | UDF |
ITEM 6 | UDF | UDF | UDF |
だから、今、これは合計で18個の要求を送信します。
私は今それを行うことを考えています方法は、要求が最初に送信される方各アイテムのためにすべてのデータを取得することである6
への要求の数を減らすために試してみたいですその項目の月間表示同じアイテムの2番目のリクエストは、最初のリクエストの結果を待つだけです。 2016年1月の列のUDFが最初に呼び出された場合ITEM 1、 については
が、それはITEM 1のすべての月のデータを要求し、その後に他の要求のためにどこかにそのデータを格納します。たとえば
から取ります。
次に、2番目のリクエストが来たとき(つまり、MAR 2016が次にあるとします)、そのUDFはJAN 2016のUDFの結果を待ちます。このようにして、MAR 2016のUDFは、サーバ。
しかし、これを実装する方法はわかりません。私は、キーワードを待っていると非同期を聞いたが、それらを使用して経験がありません。
その他の問題の解決方法も歓迎します。
'async-await'タグを削除することを検討してください。バッチ処理や特に質問には関係しないためです。 – cassandrad