ErawanEN

ดูแลให้ทำงานต่อเนื่อง

งานที่ทำงานตามเวลา — และวิธีดูว่ามันพิมพ์อะไรออกมา

งานล้างข้อมูลรายคืน รายงานรายสัปดาห์ การแจ้งเตือนตอนสองทุ่ม คำสั่งเดียว แล้วมันจะรันด้วยอิมเมจและ environment ชุดเดียวกับที่แอปคุณมีอยู่แล้ว

เพิ่มงาน

erawan task add my-app nightly "0 3 * * *" python cleanup.py

ใส่ชื่อ ใส่ cron แล้วใส่คำสั่ง ห้าช่องคือแบบมาตรฐาน — นาที ชั่วโมง วันที่ เดือน วันในสัปดาห์ — ดังนั้น 0 3 * * * คือตีสามของทุกวัน

นาฬิกาเป็น UTC

ไม่ใช่เวลาบ้านคุณ และข้อนี้คือข้อที่คนพลาดบ่อยที่สุด กรุงเทพฯ คือ UTC+7 ดังนั้นงานที่ควรรันตีสามตามเวลาไทยต้องเขียนเป็น 0 20 * * * — คือสองทุ่มของวันก่อนหน้า เขียนผิดแล้วไม่ล้มเหลว มันรันจริง แค่รันในเวลาที่คุณไม่ได้ตั้งใจ และรายงานมาถึงตอนเที่ยง

มันรันในสภาพแวดล้อมแบบไหน

อิมเมจของแอปคุณและ environment ของแอปคุณ แปลว่าการเชื่อมต่อฐานข้อมูล คีย์ต่างๆ และทุกอย่างมีอยู่แล้ว งานตามเวลาคือโค้ดของคุณเองที่ถูกตั้งเวลารัน ไม่ใช่โปรแกรมเล็กๆ อีกตัวที่ต้องตั้งค่าแยก — และเมื่อคุณนำเวอร์ชันใหม่ขึ้นออนไลน์ ทุกงานจะย้ายไปใช้อิมเมจใหม่ตามไปด้วย

ดูว่าเกิดอะไรขึ้น

erawan task ls my-app
erawan task logs my-app nightly

คำสั่งที่สองคือสิ่งที่รอบล่าสุดพิมพ์ออกมา ควรรู้ไว้ก่อนที่จะต้องใช้ — งานที่ล้มเหลวเงียบๆ ตอนตีสาม หน้าตาเหมือนกับงานที่ไม่เคยถูกเพิ่มไว้เลย

ลบงาน

erawan task rm my-app nightly

การลบแอปจะลบงานของมันไปด้วย ไม่มีตารางเวลาค้างอยู่กับสิ่งที่หายไปแล้ว

ลองคำสั่งก่อน

erawan run my-app python cleanup.py

อิมเมจเดียวกัน environment เดียวกัน รันครั้งเดียว ตอนนี้ การมารู้ตอนตีสามว่าพิมพ์คำสั่งผิด เป็นวิธีเรียนรู้ที่ช้ามาก

บทเรียนทั้งหมด