ดูแลแอป
งานที่รันเองตามเวลา และดูได้ว่ารันแล้วเป็นยังไง
ล้างข้อมูลเก่าทุกคืน ส่งรายงานทุกเช้าวันจันทร์ เตือนลูกค้าตอนสองทุ่ม งานแบบนี้ตั้งไว้ครั้งเดียวก็รันเองไปเรื่อย ๆ ใช้โค้ดและการตั้งค่าชุดเดียวกับแอปของคุณ ไม่ต้องเปิดเครื่องทิ้งไว้
บอกเอไอว่าจะให้รันอะไร ตอนไหน
บอกเป็นภาษาธรรมดาได้เลย เอไอจะแปลงเป็นตารางเวลาแบบ cron ให้เอง
ถ้าตั้งเองในเทอร์มินัล ใส่ชื่องาน ตารางเวลา แล้วตามด้วยคำสั่งที่จะรัน
ห้าช่องของ cron คือ นาที ชั่วโมง วันที่ เดือน และวันในสัปดาห์ บรรทัดข้างบนจึงแปลว่ารันตอน 20:00 ตามเวลา UTC ของทุกวัน ซึ่งก็คือตีสามของวันถัดไปตามเวลาไทย
เวลาในระบบเป็น UTC
ไม่ใช่เวลาไทย และข้อนี้คนพลาดกันบ่อยที่สุด เวลาไทยเร็วกว่า UTC เจ็ดชั่วโมง ถ้าอยากให้รันตีสามเวลาไทย ก็ต้องตั้งเป็นสองทุ่มของคืนก่อนตามเวลา UTC อย่างบรรทัดข้างบน ถ้าเผลอเขียน 0 3 * * * งานก็ไม่ได้พังให้เห็น ยังรันทุกวันตามปกติ แค่ไปรันตอนสิบโมงเช้าเวลาไทยแทน เวลาสั่งเอไอ ต่อท้ายว่าเวลาไทยทุกครั้ง เอไอจะแปลงให้เอง
งานรันด้วยอะไร
งานตั้งเวลาใช้โค้ดชุดเดียวกับแอป และได้การตั้งค่าเดียวกันทั้งหมด ทั้งการต่อฐานข้อมูลและคีย์ต่าง ๆ ไม่ต้องตั้งอะไรแยก พอเอาเวอร์ชันใหม่ขึ้นไป ทุกงานก็ย้ายไปใช้โค้ดใหม่ตามไปด้วย
มีข้อจำกัดอยู่สามข้อ
- รอบละไม่เกิน 10 นาที หน่วยความจำรอบละ 256MB งานที่เกินเวลาจะโดนหยุด รอบที่พังก็ไม่ลองใหม่ให้ รอรอบถัดไปตามเวลาเดิม ถ้างานหนักกว่านี้ ให้เอไอแบ่งเป็นชิ้นเล็กลง
- ดิสก์ของแอปอ่านได้อย่างเดียว ถ้างานต้องเขียนหรือลบไฟล์บนดิสก์ เช่น ล้างไฟล์ cache ให้บอกเอไอว่างานนี้ต้องเขียนดิสก์ด้วย (ในคำสั่งคือ
--write) - ใช้ได้กับแอปที่มีโปรแกรมรันอยู่ เว็บไซต์ที่เป็นไฟล์ล้วน ๆ ตั้งงานไม่ได้
ลองรันดูก่อน
ก่อนตั้งเวลา ให้เอไอลองรันคำสั่งนั้นดูหนึ่งรอบตอนนี้เลย ใช้โค้ดและการตั้งค่าชุดเดียวกับงานจริง จะได้รู้ตอนนี้ว่าคำสั่งผิดหรือเปล่า ไม่ต้องรอไปรู้พรุ่งนี้เช้า
ดูว่ารอบล่าสุดเป็นยังไง
คำสั่งแรกแสดงงานทั้งหมดของแอปกับเวลาที่รันครั้งล่าสุด คำสั่งที่สองแสดงสิ่งที่รอบล่าสุดพิมพ์ออกมา หรือจะถามเอไอว่า “งาน nightly รอบล่าสุดเป็นยังไง” ก็ได้ ควรเปิดดูสักครั้งหลังรอบแรกผ่านไป เพราะงานที่พังเงียบ ๆ ตอนตีสาม ดูจากข้างนอกก็ไม่ต่างจากงานที่ไม่เคยตั้งไว้เลย
เปลี่ยนเวลาหรือลบงาน
อยากเปลี่ยนเวลาก็ตั้งใหม่ด้วยชื่องานเดิม ตัวใหม่จะแทนที่ตัวเก่า ถ้าไม่ใช้แล้วก็ลบทิ้ง
ถ้าลบแอป งานทั้งหมดของแอปนั้นก็หายไปด้วย ไม่มีตารางเวลาไหนค้างไว้รันใส่แอปที่ไม่อยู่แล้ว
ถ้าอยากให้งานส่งรายงานเข้าอีเมลด้วย อ่านวิธีส่งอีเมลจากแอปต่อได้เลย
ติดตามบทเรียนใหม่และข่าวจากเอราวัณ