2016-05-02 11 views
1

POSTリクエストをwebappとしてデプロイされたGoogleアプリスクリプトに送信する際に、一貫性のない動作が発生します。Webアプリケーションの1分あたりのコールに関する既知の制限はありますか?

GAS WebアプリケーションにPOSTコールを送信するデスクトップアプリケーションがあります。この呼び出しは、数分で1から数十分の1バーストまで、そのケイデンスで完全に変わる可能性があります。

私のテストでは、リクエストが一見失われていることが判明しました.Webアプリケーションの内部ロジックフローに沿って進まないリクエスト(カットされたり途切れたスクリプトインスタンス(?)など)がありました。明らかなパターンはありません。

しかし、私はコールをスペースに入れてリクエスト間にポーズを追加するとすべてが正常化することがわかりました。

これについては確固とした限界がありますか?私がこれを解決しなければならない唯一の選択肢は、呼び出し間にこの人工的な間隔を導入することです。私はこの情報をGAS quotas pageで見つけられませんでした。

ご意見やご感想をお寄せください。

+0

更新:この問題は、ストレージサービスへのアクセスの重複に関連しているようです。 Webappの要求が半分の間隔であっても、スクリプトプロパティやキャッシュサービスにアクセスするリクエストによって問題が発生するようなサービスでは、一見誤った冗長性が導入されます。 最新の(そして最も単純な)テストでは、3秒で6リクエストを送信しましたが、リクエストごとに単純なカウンタ増分を実行しようとすると(スクリプトプロパティで)、可変の不正な出力が生成されました。 – Novack

答えて

1

答えで確認:GAS Webアプリケーションへのリクエスト数には、1分あたりの制限が明白であると記載されていません。

私が実験している問題は、並行性に関連しています。同じソースから来ている場合でも、キャッシュやプロパティなどのストレージサービスにアクセスすると、ペースの速いリクエストによって並行性の問題が発生する可能性があります。

これは、ロックサービスを使用して処理する必要があります。

+1

私はあなたがこの問題を 'Lock Service'を使って処理しようとしていたと思います。私の経験は、Lock Serviceは基本的に役に立たないということです。コードのセクションが同時に実行されないようにしても、インスタンスを「スタック」して前のコードが完了したときにインスタンスを実行するようには見えません。どのように内部的に動作するのかは分かりませんが、私はいくつかのテストを行い、この問題を調べており、同時性を処理する "組み込みの"方法はないという結論に達しました。ロックサービスは誤解を招きます。 "フォーム提出時"コードは、**フォーム**への同時データの書き込みを処理するようです。**問題ありません。 –

+1

しかし、On Form Submitトリガ以外のものは、何かが混乱することなくデータの読み書きの高速バーストを処理する方法がないようです。 JavaScript自体は問題なく並行性を処理するようです。問題は、複数のコードインスタンスが同じソースに読み書きしようとしている場合です。 –

+1

実際、私はロックサービスを使って経験を重ねていました。私は、コードのロックされた部分がスクリプトのコード(関数)の他の部分を呼び出さない限り、それが動作することを発見しました。しかし、何かがうまくいくまで、私は多くの変更を経なければならず、何の疑いもなく肯定することはできませんでした。それは私のために働く、それは物事をうまく積み重ねているようだが、私はフォームを使用しないが、スクリプトはwebappとして展開した。 – Novack

関連する問題