2017-12-01 6 views
0

私はhttp hitで動くpowershellでazure関数を作成しました。 JSONファイルを処理した後、そのルートフォルダにJSONファイルを書き込んでいます。しかし、同時に複数のヒットが発生した場合、ファイルは使用中のエラーをスローします。私は、マルチスレッドではうまく機能しませんし、1つのプロセスを実行している間に変数を変更でき、2番目のプロセスが発生することがわかります。私はどのようにそれを行うには良い提案をキューストレージを使用したくないですか?Azure関数は同時に複数のhttpヒットで動作しない

+0

すべて:あなたの関数がリサイクルまたは変更された後に(あなたのアプリケーションサービスプランの)jsonファイルに書き込むものはなくなります。また、関数の規模が大きければ、履歴を保持しない2番目のjsonファイルを取得します。あなたはそれを望んでいない可能性があります... Second:なぜこのソリューションのストレージ/ SQL/CosmosのDB /テーブルストレージ/アプリケーションの洞察/何を使用していないのですか? 3番目:問題は、同じインスタンス上の複数のインスタンスでのみ発生する必要があります。ファイルのロックを作成することができます。 –

+0

ファイルデータを読み込み、同じファイルに再度書き込むので、あるヒットでヒットしたときにヒストリーデータも取得できますが、同じヒットで2つのヒットが発生すると、両方のインスタンスがファイルにアクセスしようとします1つはそれを保持することができ、他の人はエラーをスローし、その結果、1つのインスタンスはすべてのファイルデータをクリアし、空のファイルを残します。 – Abhi619

答えて

1

あなたが失望したくない奇妙な機能のファイルシステムには何も書き込まないでください。

Cosmos DBなどの外部データストアを使用してデータを保存します。

コードサンプルがないと、間違っているとは言い難いです。コードの観点からすれば、これをうまく行えるはずですが、ファイルが使用中であるかどうかをチェックする必要があります(つまり、エラーやエラーなどを待つか、429エラーを投げるなど)。

関連する問題