สร้างการแจ้งเตือนอัตรา USD/IDR ด้วย Python
สร้าง monitor ด้วย Python standard library ที่แจ้งเตือนครั้งเดียวเมื่อข้าม threshold เก็บ state อย่างปลอดภัย และเคารพ freshness กับโควตา API
การแจ้งเตือนควรเทียบ observation ของ USD/IDR ที่มีผลใหม่กับ observation ก่อนหน้า ไม่ใช่เทียบเวลาที่ polling ครั้งก่อน ครั้งแรกสร้าง baseline ส่วนข้อมูลเก่าหรือ error ไม่เปลี่ยน state
sources["IDR"] และ effective_at["IDR"] เพื่อประเมิน IDR ส่วน source รวมเป็นเพียงสรุปแบบ conservativeos.replace เพื่อป้องกัน state เสียหายEXCHANGERATE_API_KEY และ polling ห่างอย่างน้อย60วินาที เมื่อ429 ให้เก็บ state และทำตาม Retry-Afterสร้างโมเดล observation
ใช้ sources["IDR"] และ effective_at["IDR"] เพื่อประเมิน IDR ส่วน source รวมเป็นเพียงสรุปแบบ conservative
กำหนดนโยบายการข้าม threshold
observation แรกเป็น baseline เท่านั้น หลังข้าม threshold ให้แจ้งครั้งเดียว และ arm ใหม่เมื่อ observation ที่ถูกต้องกลับมาต่ำกว่า threshold
บันทึก state อย่างปลอดภัย
เขียน JSON ลงไฟล์ชั่วคราว ตั้ง mode0600 แล้วใช้ os.replace เพื่อป้องกัน state เสียหาย
จำกัด network และ quota
ใช้ timeout 10 วินาที เก็บคีย์ใน EXCHANGERATE_API_KEY และ polling ห่างอย่างน้อย60วินาที เมื่อ429 ให้เก็บ state และทำตาม Retry-After ค่าเริ่มต้นทุกห้านาทีใช้ประมาณ 8,640 calls ใน30วัน ส่วนทุก60วินาทีใช้ประมาณ43,200และอาจเกิน quota ร่วมรายเดือน
EXCHANGERATE_API_KEY และ polling ห่างอย่างน้อย60วินาที เมื่อ429 ให้เก็บ state และทำตาม Retry-Afterรัน monitor
ดาวน์โหลดสคริปต์เต็ม ตั้งค่า threshold และ state path นอก source control และแสดงผลใน console เท่านั้น ค่าเริ่มต้นอายุข้อมูลสูงสุดคือหนึ่งชั่วโมง ตั้ง FX_ALERT_MAX_AGE_SECONDS หากยอมรับข้อมูลอ้างอิงรายวันหรือตลาดปิด python-exchange-rate-alerts.py
ทดสอบนโยบายโดยไม่ต้องรอตลาด
ทดสอบ baseline, crossing, timestamp ซ้ำ, ข้อมูลเก่า, rearm และ crossing ครั้งที่สองด้วย network mock