簡體   English   中英

Google Apps腳本,按時間運行由時間驅動的觸發器

[英]Google Apps Script, running time-driven triggers sequentially

我需要在夜間運行3個功能(當沒有人使用我的電子表格時)。 我的約束是

  • 功能1必須在功能2開始之前完成,功能2必須在功能3開始之前完成
  • 在最壞的情況下,每個過程可能需要90到120秒才能完成

我知道在服務器終止線程之前,每個腳本的最大執行時間為6分鍾。 根據我的經驗,我通常會在5分鍾左右發生這種情況。

我不會將所有3個函數放到一個函數中,因為最壞的情況(3x 120秒)可能會使服務器終止線程。

我計划要做的是一個接一個地安排這些功能 在此處輸入圖片說明

我的問題是:這些間隔是61分鍾還是60分鍾? EG Function2 AND Function3是否可以在01:00開始執行?

我想我可以安排他們在23:00-00:00、01:00-02:00和03:00-04:00開火,我希望解決方案不涉及5個小時(最壞的情況是) 完成。

謝謝

您可以根據需要創建觸發器。 您無需依賴基於菜單的觸發器。

例如,對於您的情況,您可以執行以下操作:

function createTimeDrivenTriggers() {


  // Trigger Function 1 everyday at 23:00.

  ScriptApp.newTrigger('Function 1')
      .timeBased()
      .everyDays(1)
      .atHour(23)
      .create();

 // Trigger Function 2 everyday at 1:00.
  ScriptApp.newTrigger('Function 2')
      .timeBased()
      .everyDays(1)
      .atHour(1)
      .create();

// Trigger Function 3 everyday at 2:00.
  ScriptApp.newTrigger('Function 3')
      .timeBased()
      .everyDays(1)
      .atHour(2)
      .create();
}

請訪問: ClockTriggerBuilder以獲取更大的靈活性。

您可以以編程方式創建一個觸發器,該觸發器將在[1]中指定的確切時間運行

ScriptApp.newTrigger('myFunction').timeBased().everyDays(1).atHour(11).create();

運行此代碼一次,觸發器將被設置

[1] https://developers.google.com/apps-script/guides/triggers/installable#managing_triggers_programmatically

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM