원클릭으로
automation-scheduler
建立定期任務(每日晨報、每週回顧)。當使用者需要設定自動化的、定期執行的任務時使用。
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
建立定期任務(每日晨報、每週回顧)。當使用者需要設定自動化的、定期執行的任務時使用。
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
在使用者要設計網站、Web App 或元件介面時使用。常見觸發像「做 landing page」「設計 dashboard」「規劃 component UI」。輸出可上線介面與設計系統;不取代產品策略或純品牌研究。
在使用者要把模糊想法整理成可開發 spec 時使用。常見觸發像「整理需求成 spec」「補驗收條件」「拆分階段開發計畫」。輸出技術規格、白話規格與可直接貼用於 Codex / Claude Code 的分階段 instructions;不直接代替正式文件發布。
在非程式開發者要用 vibe coding 與 coding agent 協作時使用。常見觸發像「幫我整理開發準則」「定義交付邊界」「規劃驗證方式」。輸出需求表達、邊界與風險控管準則;不直接取代實作。
當使用者要拆解大型、混亂、跨部門、反覆卡關或高不確定性的難題,或明確要求做問題拆解、issue tree、根因與對策分層時使用。先分清楚現象、目標落差、真正問題與根因假設,再判斷問題是範疇型、分析型、動態系統型、研究型或交付型,最後用 issue tree/MECE、WBS、系統思考、驗收標準、依賴排程、資源分派與流動指標,產出可執行的問題拆解報告、工作包、關鍵路徑、並行策略與 PDCA 回饋節奏。
當使用者要替代解法、不同思路、更簡單或更穩定做法時使用。將現有方案重構成結構問題,提出多條可落地方案與最低摩擦解。
當使用者要先做概念對齊、要求先不要執行任務本體、想先把關鍵概念/背景知識/近期重大事件查清楚,或要求「先上網整理背景再開始」時使用。適合「先做 Concept Alignment」「先對齊概念」「先幫我查關鍵概念與背景資料」「先整理定義、脈絡與近期變化」這類請求。會先用第一性原理拆解任務與歧義,立即上網蒐集原始或高可信來源,釐清名詞、單位、幣別、時間範圍、利害關係人與重要事件,最後只輸出 `## Concept Alignment` 下的三段:`### [關鍵概念]定義`、`### 收集背景知識`、`### 重大影響的具體事件`;必要時穿插附來源標註的 Mermaid 圖,但不執行任務本體,也不使用 canvas。
| name | automation-scheduler |
| description | 建立定期任務(每日晨報、每週回顧)。當使用者需要設定自動化的、定期執行的任務時使用。 |
本技能旨在提供一個標準化的方法來建立和管理定期自動化任務,包括每日、每週、每月等各種時間間隔的任務。
與使用者溝通,確定要自動化的任務的具體需求。
需求澄清清單:
定義任務應該執行的具體步驟和邏輯。
任務設計清單:
任務執行邏輯範例:
def daily_morning_report():
"""
每日晨報任務
"""
try:
# 1. 收集資料
data = collect_daily_data()
# 2. 生成報告
report = generate_report(data)
# 3. 發送報告
send_email(report)
# 4. 記錄日誌
log_task_execution("success", "晨報已發送")
except Exception as e:
log_task_execution("error", str(e))
notify_admin(f"晨報任務失敗: {e}")
使用 Cron 表達式或其他排程格式定義任務的執行時間。
Cron 表達式格式:
Cron 表達式由 6 個欄位組成,表示秒、分鐘、小時、日期、月份和星期幾。
秒 分 時 日 月 週
0 0 8 * * * # 每天早上 8:00:00
0 0 8 * * 1-5 # 週一到週五早上 8:00:00
0 0 9,17 * * * # 每天早上 9:00 和下午 5:00
0 0 0 1 * * # 每月 1 日午夜
0 0 0 * * 0 # 每週日午夜
*/15 * * * * * # 每 15 分鐘
Cron 欄位說明:
| 欄位 | 範圍 | 特殊字符 | 說明 |
|---|---|---|---|
| 秒 | 0-59 | , - * / | 任務執行的秒數 |
| 分 | 0-59 | , - * / | 任務執行的分鐘 |
| 時 | 0-23 | , - * / | 任務執行的小時(24 小時制) |
| 日 | 1-31 | , - * / | 任務執行的日期 |
| 月 | 1-12 | , - * / | 任務執行的月份 |
| 週 | 0-6 | , - * / | 任務執行的星期(0=星期日) |
常見的排程範例:
| 需求 | Cron 表達式 |
|---|---|
| 每天早上 8 點 | 0 0 8 * * * |
| 每週一早上 9 點 | 0 0 9 * * 1 |
| 每月 1 日午夜 | 0 0 0 1 * * |
| 每 30 分鐘 | 0 */30 * * * * |
| 工作日每小時 | 0 0 * * * 1-5 |
| 每 5 分鐘 | 0 */5 * * * * |
設定排程任務的各種參數,包括重試策略、超時設定等。
排程配置清單:
配置範例:
from apscheduler.schedulers.background import BackgroundScheduler
from apscheduler.triggers.cron import CronTrigger
scheduler = BackgroundScheduler()
# 新增每日晨報任務
scheduler.add_job(
func=daily_morning_report,
trigger=CronTrigger(hour=8, minute=0, second=0),
id='daily_morning_report',
name='每日晨報',
max_instances=1, # 防止並發執行
misfire_grace_time=300, # 如果錯過,在 5 分鐘內仍然執行
coalesce=True, # 如果多個執行被跳過,只執行一次
replace_existing=True
)
scheduler.start()
為排程任務實施適當的錯誤處理和監控機制。
錯誤處理策略:
監控清單:
錯誤處理範例:
import logging
from datetime import datetime
logger = logging.getLogger(__name__)
def execute_scheduled_task(task_func, task_name, max_retries=3):
"""
執行排程任務,包含重試邏輯
"""
for attempt in range(max_retries):
try:
logger.info(f"開始執行任務: {task_name} (嘗試 {attempt + 1}/{max_retries})")
task_func()
logger.info(f"任務成功完成: {task_name}")
return True
except Exception as e:
logger.error(f"任務執行失敗: {task_name}, 錯誤: {str(e)}")
if attempt < max_retries - 1:
logger.info(f"將在 60 秒後重試...")
time.sleep(60)
else:
notify_admin(f"任務 {task_name} 在 {max_retries} 次嘗試後仍然失敗")
return False
在部署到生產環境前,充分測試排程任務。
測試清單:
測試程式碼範例:
from apscheduler.schedulers.background import BackgroundScheduler
from datetime import datetime, timedelta
# 建立測試排程器
scheduler = BackgroundScheduler()
# 新增一個立即執行的測試任務
scheduler.add_job(
func=daily_morning_report,
trigger='date',
run_date=datetime.now() + timedelta(seconds=5),
id='test_task'
)
scheduler.start()
# 等待任務執行
time.sleep(10)
# 驗證任務是否執行成功
job = scheduler.get_job('test_task')
if job:
print("任務仍在隊列中,可能未執行")
else:
print("任務已執行並移除")
將排程任務部署到生產環境,並進行持續監控。
部署清單:
監控儀表板應包含:
使用 UTC 時區: 在伺服器上使用 UTC 時區,避免時區轉換的複雜性。
冪等性設計: 設計任務使其可以安全地重複執行而不產生不良副作用。
詳細日誌記錄: 記錄任務的開始、結束和任何重要的中間步驟。
監控和警報: 設定監控系統,及時發現和報告任務失敗。
定期審查: 定期審查排程任務的執行情況,優化配置。
文件化: 清晰地文件化每個排程任務的目的、時間表和依賴項。
版本控制: 將排程配置保存在版本控制系統中,便於追蹤變更。