<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Scheduling on Tarragon</title><link>https://tarrragon.github.io/blog/tags/scheduling/</link><description>Recent content in Scheduling on Tarragon</description><generator>Hugo -- gohugo.io</generator><language>zh-TW</language><copyright>Tarragon (CC BY 4.0)</copyright><lastBuildDate>Mon, 06 Jul 2026 00:00:00 +0800</lastBuildDate><atom:link href="https://tarrragon.github.io/blog/tags/scheduling/index.xml" rel="self" type="application/rss+xml"/><item><title>Time-Driven Trigger（時間觸發器）</title><link>https://tarrragon.github.io/blog/automation/knowledge-cards/time-driven-trigger/</link><pubDate>Mon, 06 Jul 2026 00:00:00 +0800</pubDate><guid>https://tarrragon.github.io/blog/automation/knowledge-cards/time-driven-trigger/</guid><description>&lt;p>時間觸發器（time-driven trigger）是讓 Apps Script 在固定時間自動執行某個函式的排程機制。它把膠水層從「被動等 HTTP 請求呼叫」（見 &lt;a href="https://tarrragon.github.io/blog/automation/knowledge-cards/doget-dopost/" data-link-title="doGet / doPost" data-link-desc="Apps Script web app 的兩個進入點函式，分別接住 GET 與 POST 請求，決定端點收到請求時執行什麼">doGet / doPost&lt;/a>）變成「主動定時執行」——不需要有人打網址，到點就自己跑。&lt;/p>
&lt;h2 id="概念位置">概念位置&lt;/h2>
&lt;p>流量統計用它把 &lt;a href="https://tarrragon.github.io/blog/automation/knowledge-cards/beacon/" data-link-title="Beacon" data-link-desc="瀏覽器在頁面事件發生時主動送出、送出後不等回應的一則事件回報請求，用於靜態站把資料回傳給接收端">beacon&lt;/a> 累積的原始 log 每天彙總成一張日報表，實作見&lt;a href="https://tarrragon.github.io/blog/automation/04-triggers-automation/" data-link-title="模組四：觸發器與排程" data-link-desc="用 Apps Script 的時間觸發器把累積的原始瀏覽 log 定時彙總成看得懂的日報，以及觸發器的每日執行配額">模組四&lt;/a>。&lt;/p>
&lt;h2 id="可觀察訊號與例子">可觀察訊號與例子&lt;/h2>
&lt;p>時間觸發器可以設成每分鐘、每小時、每天固定時段、或每週執行。典型用法是「每天凌晨把前一天的 raw log 依日期與路徑 group 成彙總表」，讓人打開試算表看到的是整理過的數字、而不是逐筆原始紀錄。&lt;/p>
&lt;h2 id="判讀方式">判讀方式&lt;/h2>
&lt;p>觸發器的成本受&lt;a href="https://tarrragon.github.io/blog/automation/knowledge-cards/execution-quota/" data-link-title="Execution Quota（執行配額）" data-link-desc="Apps Script 個人帳號的執行時間、同時併發與觸發器每日總時間上限，決定免費膠水層能承受多大的量">執行配額&lt;/a>約束：個人帳號所有觸發器每天總執行時間上限 90 分鐘。所以彙總邏輯要寫得有效率，資料量大時避免每次都全表掃描——這條線在原始 log 累積到很多列時才會逼近，判讀與最佳化見&lt;a href="https://tarrragon.github.io/blog/automation/03-sheet-as-database/" data-link-title="模組三：Sheets 當資料庫" data-link-desc="用 Google Sheet 存流量資料時，怎麼處理多個 beacon 同時寫入的並發、設計資料模型、以及判斷資料量到哪會撐不住">模組三：Sheets 的容量邊界&lt;/a>。&lt;/p></description><content:encoded><![CDATA[<p>時間觸發器（time-driven trigger）是讓 Apps Script 在固定時間自動執行某個函式的排程機制。它把膠水層從「被動等 HTTP 請求呼叫」（見 <a href="/blog/automation/knowledge-cards/doget-dopost/" data-link-title="doGet / doPost" data-link-desc="Apps Script web app 的兩個進入點函式，分別接住 GET 與 POST 請求，決定端點收到請求時執行什麼">doGet / doPost</a>）變成「主動定時執行」——不需要有人打網址，到點就自己跑。</p>
<h2 id="概念位置">概念位置</h2>
<p>流量統計用它把 <a href="/blog/automation/knowledge-cards/beacon/" data-link-title="Beacon" data-link-desc="瀏覽器在頁面事件發生時主動送出、送出後不等回應的一則事件回報請求，用於靜態站把資料回傳給接收端">beacon</a> 累積的原始 log 每天彙總成一張日報表，實作見<a href="/blog/automation/04-triggers-automation/" data-link-title="模組四：觸發器與排程" data-link-desc="用 Apps Script 的時間觸發器把累積的原始瀏覽 log 定時彙總成看得懂的日報，以及觸發器的每日執行配額">模組四</a>。</p>
<h2 id="可觀察訊號與例子">可觀察訊號與例子</h2>
<p>時間觸發器可以設成每分鐘、每小時、每天固定時段、或每週執行。典型用法是「每天凌晨把前一天的 raw log 依日期與路徑 group 成彙總表」，讓人打開試算表看到的是整理過的數字、而不是逐筆原始紀錄。</p>
<h2 id="判讀方式">判讀方式</h2>
<p>觸發器的成本受<a href="/blog/automation/knowledge-cards/execution-quota/" data-link-title="Execution Quota（執行配額）" data-link-desc="Apps Script 個人帳號的執行時間、同時併發與觸發器每日總時間上限，決定免費膠水層能承受多大的量">執行配額</a>約束：個人帳號所有觸發器每天總執行時間上限 90 分鐘。所以彙總邏輯要寫得有效率，資料量大時避免每次都全表掃描——這條線在原始 log 累積到很多列時才會逼近，判讀與最佳化見<a href="/blog/automation/03-sheet-as-database/" data-link-title="模組三：Sheets 當資料庫" data-link-desc="用 Google Sheet 存流量資料時，怎麼處理多個 beacon 同時寫入的並發、設計資料模型、以及判斷資料量到哪會撐不住">模組三：Sheets 的容量邊界</a>。</p>
]]></content:encoded></item><item><title>模組四：觸發器與排程</title><link>https://tarrragon.github.io/blog/automation/04-triggers-automation/</link><pubDate>Mon, 06 Jul 2026 00:00:00 +0800</pubDate><guid>https://tarrragon.github.io/blog/automation/04-triggers-automation/</guid><description>&lt;p>回答「原始 log 怎麼變成看得懂的報表、而且不用手動跑」。beacon 一直 append 進來的是一列一列的原始瀏覽紀錄，這種 raw log 直接看沒意義——要的是「昨天每篇文章被看幾次」。這一章用 Apps Script 的時間觸發器（time-driven trigger）自動排程：每天固定時間把前一天的原始 log 彙總成一張日報表，人打開就看得懂。&lt;/p>
&lt;p>觸發器是 Apps Script 從「被動等人呼叫」變成「主動定時執行」的機制。它的成本要放在心上：個人帳號的觸發器每天總執行時間上限是 90 分鐘（見&lt;a href="https://tarrragon.github.io/blog/automation/00-mental-model/free-tier-and-tool-choice/" data-link-title="免費額度的思考方式與工具選型" data-link-desc="判斷免費膠水層撐不撐得住自己流量時該看哪個限制、以及 Apps Script 與 Cloudflare Workers 各自適合什麼場景">模組零&lt;/a>），所以彙總邏輯要寫得有效率，別在觸發器裡做會逼近上限的重活。&lt;/p>
&lt;h2 id="章節文章">章節文章&lt;/h2>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>文章&lt;/th>
 &lt;th>主題&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>&lt;a href="https://tarrragon.github.io/blog/automation/04-triggers-automation/time-driven-aggregation/" data-link-title="時間觸發器：把 raw log 彙總成日報" data-link-desc="用時間觸發器每天定時把原始瀏覽 log group 成日報，以及在 90 分鐘觸發配額下只讀增量的效率寫法">時間觸發器：把 raw log 彙總成日報&lt;/a>&lt;/td>
 &lt;td>設定每日定時、group by 彙總邏輯、在 90 分鐘配額內只讀增量的效率寫法&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;a href="https://tarrragon.github.io/blog/automation/04-triggers-automation/form-and-event-triggers/" data-link-title="表單與事件觸發器" data-link-desc="由 Google 檔案事件（表單提交、試算表編輯）觸發的 Apps Script，以及 simple 與 installable 觸發器在權限上的差別">表單與事件觸發器&lt;/a>&lt;/td>
 &lt;td>&lt;code>onFormSubmit&lt;/code> / &lt;code>onEdit&lt;/code>、simple 與 installable 觸發器的權限分界&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;h2 id="跨分類引用">跨分類引用&lt;/h2>
&lt;ul>
&lt;li>→ &lt;a href="https://tarrragon.github.io/blog/automation/03-sheet-as-database/" data-link-title="模組三：Sheets 當資料庫" data-link-desc="用 Google Sheet 存流量資料時，怎麼處理多個 beacon 同時寫入的並發、設計資料模型、以及判斷資料量到哪會撐不住">模組三：Sheets 當資料庫&lt;/a>：被彙總的 raw log 從哪來&lt;/li>
&lt;li>→ &lt;a href="https://tarrragon.github.io/blog/monitoring/08-business-analytics/funnel-analysis/" data-link-title="Funnel Analysis" data-link-desc="使用者在哪一步流失 — 從事件序列計算每步轉換率、找出流失最嚴重的步驟、區分設計問題和技術問題">Monitoring：漏斗分析&lt;/a>：彙總後的資料能做什麼分析&lt;/li>
&lt;/ul></description><content:encoded><![CDATA[<p>回答「原始 log 怎麼變成看得懂的報表、而且不用手動跑」。beacon 一直 append 進來的是一列一列的原始瀏覽紀錄，這種 raw log 直接看沒意義——要的是「昨天每篇文章被看幾次」。這一章用 Apps Script 的時間觸發器（time-driven trigger）自動排程：每天固定時間把前一天的原始 log 彙總成一張日報表，人打開就看得懂。</p>
<p>觸發器是 Apps Script 從「被動等人呼叫」變成「主動定時執行」的機制。它的成本要放在心上：個人帳號的觸發器每天總執行時間上限是 90 分鐘（見<a href="/blog/automation/00-mental-model/free-tier-and-tool-choice/" data-link-title="免費額度的思考方式與工具選型" data-link-desc="判斷免費膠水層撐不撐得住自己流量時該看哪個限制、以及 Apps Script 與 Cloudflare Workers 各自適合什麼場景">模組零</a>），所以彙總邏輯要寫得有效率，別在觸發器裡做會逼近上限的重活。</p>
<h2 id="章節文章">章節文章</h2>
<table>
  <thead>
      <tr>
          <th>文章</th>
          <th>主題</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td><a href="/blog/automation/04-triggers-automation/time-driven-aggregation/" data-link-title="時間觸發器：把 raw log 彙總成日報" data-link-desc="用時間觸發器每天定時把原始瀏覽 log group 成日報，以及在 90 分鐘觸發配額下只讀增量的效率寫法">時間觸發器：把 raw log 彙總成日報</a></td>
          <td>設定每日定時、group by 彙總邏輯、在 90 分鐘配額內只讀增量的效率寫法</td>
      </tr>
      <tr>
          <td><a href="/blog/automation/04-triggers-automation/form-and-event-triggers/" data-link-title="表單與事件觸發器" data-link-desc="由 Google 檔案事件（表單提交、試算表編輯）觸發的 Apps Script，以及 simple 與 installable 觸發器在權限上的差別">表單與事件觸發器</a></td>
          <td><code>onFormSubmit</code> / <code>onEdit</code>、simple 與 installable 觸發器的權限分界</td>
      </tr>
  </tbody>
</table>
<h2 id="跨分類引用">跨分類引用</h2>
<ul>
<li>→ <a href="/blog/automation/03-sheet-as-database/" data-link-title="模組三：Sheets 當資料庫" data-link-desc="用 Google Sheet 存流量資料時，怎麼處理多個 beacon 同時寫入的並發、設計資料模型、以及判斷資料量到哪會撐不住">模組三：Sheets 當資料庫</a>：被彙總的 raw log 從哪來</li>
<li>→ <a href="/blog/monitoring/08-business-analytics/funnel-analysis/" data-link-title="Funnel Analysis" data-link-desc="使用者在哪一步流失 — 從事件序列計算每步轉換率、找出流失最嚴重的步驟、區分設計問題和技術問題">Monitoring：漏斗分析</a>：彙總後的資料能做什麼分析</li>
</ul>
]]></content:encoded></item></channel></rss>