2016-07-27 1 views
0

Google Script呼び出し関数を非同期にする方法はありますか?私のシナリオでは、情報が入力されたメインのスプレッドシートがあるので、スクリプトは関連する情報を他のスプレッドシートに渡します。スクリプトを使用してGoogleシートから非同期に関数を呼び出す

他のスプレッドシートのデータを操作する他の機能があります。残念ながら、大量のデータがあるため、1つのアクションですべての関数を呼び出すと、スクリプトは6分のタイムアウトになります。

他のスプレッドシートでonEditトリガを使用しようとしましたが、ユーザーがシートを開いていないと動作しません。

今のところ、ユーザーはさまざまな機能をトリガーするために4つの異なるボタンを押す必要があり、タイムアウトは発生しません。アップデートはする必要があり、あなたはおそらくとしてPropertiesServiceに保存されている(作られるアップデートのすべてを含むキューを作成することを検討可能性があり、リアルタイム方法に応じて任意のヘルプ

ブレア

答えて

0

ため

感謝文字列化されたJSONオブジェクト)。

次に、キューからそのエントリを削除する前に、更新コードを定期的に(たとえば5分ごとに)トリガし、キューの次の要素を読み込んで更新を実行することができます。これは、個々の更新が6分のウィンドウ内に収まることを意味しますが、メインシートへの更新ごとに4つの追加更新があった場合、すべてが作成されるまでに最大24分かかることもあります。

+0

残念ながら、ユーザーは応答を待っており、実行する必要のある機能は13個あり、現在はそれぞれ約90秒かかります。私はそれらを同時に実行することができない場合は、私はそれにアプローチする別の方法を考えてみる必要があります。 –

+0

Hmm。それは長い時間!あまり時間がかからないように機能を効率化する方法はありませんか? IMPORTRANGEを使用して他のスプレッドシートをマスターにリンクすることもできます。 – alfiethecoder

+0

問題は、対処している行の数です。通常は約10,000です。私が試したときに、すべての人に数式を入力させて、再計算はスプレッドシートを殺しました。最初の行を1000にコピーして別のシートに10回貼り付け、最後にすべての式をもう一度削除するスクリプトを作成する必要がありました。 –

関連する問題