有時我們會需要使用到cron job去定時執行一些任務,當然我們可以租台VPS伺服器或是使用一些現成的cron job服務,但無論是租用VPS還是現成服務,通常都是需要付費的。所以讓我們好好的利用Google大神,提供的這項功能吧!

註:Google Apps Script 是有限制的,詳細配額限制請參考:

https://developers.google.com/apps-script/guides/services/quotas

一.建立spreadsheets

首先,我們先進入google雲端硬碟或是google試算表建立一個新的試算表(spreadsheets)頁。

二.建立Google Apps Script

在試算表 > 工具 > 指令碼編輯器

google apps script指令碼編輯器

會自動開啟一個新的App Script,裡面什麼也沒有

google app script 新的

接著我們在編輯區編寫一小段code。(這段code的作用是將試算表A1欄位更新為目前的時間)

之後你能改成你想要的code,這邊只是簡單演示CronJob如何設定

google app script 目前時間

/* *
  Google Apps Script CRON Job
  @Aidec Li
*/ 
function execCronJob() {
  // 讀取 Active Spreadsheet
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  // 獲取 A1
  var dataRange = sheet.getRange("A1");
  // 獲取 A1值
  var data = dataRange.getValues(); 
  Logger.log(data);
  // 更新A1欄位為指定目前的時間
  var currentTime = new Date();
  //Logger.log(currentTime);
  dataRange.setValue(currentTime);
  //設定欄位值的簡化寫法
  SpreadsheetApp.getActiveSheet().getRange('C1').setValue('Hello Aidec Li');
  
  SpreadsheetApp.flush();
}

編寫好Code以後,保存專案,並執行~

google app script 保存

執行腳本,第一次執行會要求授權,是正常現象。

google app script執行

第一次執行會要求授權,點[審查權限]

06.PNG

接著,會要你選擇google帳號

07.PNG

然後可能會出現安全提示,說這個應用程式未經驗證,但不必擔心(反正code是自己寫的),點[進階] > 前往[未命名的專案](不安全)

應用程式未經google驗證

應用程式未經google驗證2

最後,允許此專案使用你的google帳戶,之後我們就能使用這個google apps script了

10.PNG

三.設定Cron job

接下來,是重頭戲!要真正的開始設定,Cron job任務。

建立觸發器

點左側的的「時鐘」,進入[觸發條件]頁,再點右下角[新增觸發條件]按鈕

11.PNG

選擇要執行的func,這邊我們只有寫execCronJob這個function,所以選擇它。

再將活動來源,改成以[時間驅動]

12.PNG

在選擇時間觸發的類型,是要分鐘、小時、天....,以及選擇間隔,每分鐘、每五分鐘....。

13.PNG

設定完畢後,儲存設定,就搞定了。

Cron Job的應用

這個Cron Job可以怎麼應用,目前想到的是

1.可以用來每分鐘ping自己的服務,判斷網站是否在線,掉線的話就用lineNotify自動通知....

2.定時去證交所抓資料,判斷指定股票是否到價,在發送lineNotify通知的

改天有寫出來,在分享給大家。(最近忙忙的)


文章轉載或引用,請先告知並保留原文出處與連結!!(單純分享或非營利的只需保留原文出處,不用告知)

原文連結:
https://blog.aidec.tw/post/cronjob-google-app-script-spreadsheet