1. 什麼是自動化排程?
當資料或 AI 模型需要「定期更新」時,我們不希望手動執行,而是交給系統自動跑。
常見方式包括:
● cron job(Linux / macOS 內建排程)
● n8n(視覺化自動化流程)
● Airflow / Prefect(專業資料工作流平台)
今天我們介紹前兩種最實用的。
2. 方法一:使用 Cron Job
如果你是用 macOS 或 Linux(WSL 也可),可以用 crontab:
輸入:
crontab -e
在裡面加上一行:
0 9 * * * python /path/to/your/cancer-dashboard/predict_and_insert.py >> /path/to/your/cancer-dashboard/logs/predict.log 2>&1
意思是:
每天早上9點執行一次 Python 預測程式,並把結果寫入 predict.log。
3. 方法二:使用n8n自動化流程
如果你希望「可視化設定流程」,可以使用 n8n(開源自動化工具)。
(1) 啟動 n8n 容器
在 docker-compose.yml 加入:
n8n:
image: n8nio/n8n
container_name: n8n
ports:
- "5678:5678"
volumes:
- n8n_data:/home/node/.n8n
environment:
- GENERIC_TIMEZONE=Asia/Taipei
- N8N_BASIC_AUTH_ACTIVE=true
- N8N_BASIC_AUTH_USER=admin
- N8N_BASIC_AUTH_PASSWORD=admin123
執行:
docker compose up -d n8n
打開瀏覽器進入 http://localhost:5678
登入帳號密碼:admin / admin123
(2) 建立自動化流程
a. 新增節點:「Cron」 → 設定每天 09:00 執行
b. 新增節點:「Execute Command」 → 指令輸入:
python /project/predict_and_insert.py
c. python /project/predict_and_insert.py
完成後按「Activate Workflow」,n8n 就會自動每天幫你執行一次預測腳本。
4. rafana 自動顯示新數據
Grafana 不需要特別設定,只要資料庫更新,它的 Dashboard 會自動抓最新的資料。
你可以在 Dashboard 設定:
● Refresh interval: 5m(每 5 分鐘更新一次)
● 或手動刷新
這樣,每天的預測結果都會在圖上自動延伸出新的一點。
5. 成果
現在整個系統是「全自動」的:
PostgreSQL ←→ Python 預測程式 ←→ Cron/n8n 自動執行 ←→ Grafana 即時顯示
● 病人新檢測數據 → 自動產生 AI 預測
● 預測結果 → 自動寫回資料庫
● Grafana → 自動顯示最新趨勢
這樣就形成一個完整的 癌症資料視覺化 AI 平台循環。