本文會撰寫一個 Python Script 發送 API 請求,如果發送失敗或伺服器回覆錯誤的話,就透過 outlook 發送信件。此外透過 Windows 內建的工作排程器設定定時執行。
Python Script 寫法
請參考以下 Script 的註解。
import http.client
import ssl
import win32com.client as win32
# 透過 outlook 發送信件
def SendErrorNotice(error_message):
outlook = win32.Dispatch('Outlook.Application')
mail = outlook.CreateItem(0)
mail.Subject = '你的信件標題'
mail.Body = error_message
mail.To = 'aaa@xxx.com' # 要寄給誰
mail.Send()
# 設定連線請求
context = ssl._create_unverified_context() # 建立忽略 SSL 憑證驗證的 context (若有需要)
try:
conn = http.client.HTTPSConnection("xxx.com.tw:443", context=context)
payload = "{}" # 請求的 Body
headers = { # 要加入的 Header
'Content-Type': "application/json",
'Authorization': "xxxx"
}
# 連線並檢查回傳結果
conn.request("GET", "/query/test", payload.encode("utf-8"), headers)
res = conn.getresponse()
if res.status != 200:
error_msg = f'異常\n狀態碼:{res.status} {res.reason}'
SendErrorNotice(error_msg)
else:
data = res.read()
# print(data.decode("utf-8")) # 可以檢查結果
except Exception as e: # 連線失敗
error_msg = f'連線失敗\n錯誤訊息:{str(e)}'
SendErrorNotice(error_msg)
工作排程器設定

從開始功能表搜尋「工作排程器」並執行。

設定每天重複執行,每隔 30 分鐘一次。

在程式處貼上 pythonw.exe 的路徑,引數貼上 python script 的路徑。
python.exe 和 pythonw.exe 檔都會執行 Python 程式碼,差異是 pythonw.exe 不會顯示終端機,不會電腦用到一半突然彈出視窗干擾。
參考資料
附註:PowerShell
可以參考以下網址,使用 Windows 排程執行 PowerShell Script。
