Project

General

Profile

Python scheduler

หน้า python scheduler ใช้สำหรับ execute python script โดยสามารถ execute ในแบบตั้งเวลาได้สองโหมดหลักคือแบบครั้งเดียวและทำซ้ำ นอกจากนี้ผู้ใช้สามารถ execute task ได้ทุกเมื่อหากต้องการ ในหน้าแรกประกอบไปด้วยตารางแสดงรายละเอียดของ python task ที่ผู้ใช้ได้สร้างขึ้นโดยจะขอกล่าวถึงรายละเอียดของขั้นตอนการสร้าง python task ในภายหลัง โดยข้อมูลที่แสดงในตารางประกอบด้วย (ภาพที่ 1)
  1. ชื่อ task
  2. โหมดการตั้งเวลา ซึ่งแสดงเป็น แบบครั้งเดียวและแบบทำซ้ำ
  3. สถานะของ task ประกอบไปด้วย
    1. none แสดงถึง task นั้นได้สร้างขึ้นและยังไม่เกิดการ execute
    2. pending แสดงถึง task นั้นได้มีการสั่งให้ execute แล้ว ซึ่งอยู่ระหว่างการรอระบบดำเนินการ execute
    3. processing แสดงถึง task นั้นอยู่ระหว่างการ execute
    4. complete แสดงถึง task ดังกล่าวเสร็จสิ้นกระบวนการ execute
      ##cancel แสดงถึงมีการ cancel task นี้ก่อนที่ execute ได้สำเร็จ
  4. ถึง task นั้นมีการแจ้งเตือนผลลัพธ์ไปยัง email ของผู้สร้างหรือไม่ เมื่อ task นั้น execute เสร็จ
  5. แสดงถึงผลลัพธ์การ execute ประกอบด้วย
    1. none แสดงถึง task นั้นยังไม่มีผลการ execute
    2. success แสดงถึง task นั้น execute เสร็จโดยไม่เกิดข้อผิดพลาด
    3. error แสดงว่า task นั้นเกิดข้อผิดพลาดขณะ execute
  6. เวลา (ISO 8601 format) ที่ระบุถึงเวลาล่าสุดที่ task เกิดการ execute ล่าสุด
  7. วันที่และช่วงเวลาของกระบวนการ execute ของ task
  8. ช่วงเวลาที่ใช้ในการ execute
  9. ปุ่มที่ใช้ควบคุมการ execute ของ task โดยผู้ใช้สามารถสั่งให้มีการ execute แบบทันทีผ่านปุ่มนี้ (ปุ่มจะแสดงคำว่า start) และสามารถสั่งหยุดการ execute ได้ผ่านปุ่มเดียวกันนี้ ซึ่งปุ่มจะแสดงคำว่า stop หาก task นั้นกำลัง processing อยู่
  10. ปุ่มที่ใช้ควบคุมการตั้งเวลาทำงานและหยุดการทำงานตามเวลาที่ตั้งไว้ โดยปกติแล้ว เมื่อมีการสร้างหรือแก้ไข task ซึ่ง task นั้นจะถูกตั้งเวลาการทำงานไว้ตามที่ผู้ใช้กำหนดไว้ โดยปุ่มจะแสดงคำว่า cancel เพื่อยกเลิกการทำงานแบบตั้งเวลา และหาก task นั้นยังไม่ถูกตั้งเวลาให้ทำงานไว้ ปุ่มจะแสดงคำว่า start โดยเมื่อกดปุ่ม start นี้ task จะถูกสั่งให้ทำตามเวลาที่ตั้งไว้หาก task นั้นเป็นการตั้งเวลาแบบทำซ้ำ แต่ถ้าเป็นการตั้งเวลาแบบครั้งเดียวจะปรากฏ modal ให้ผู้ใช้กำหนดเวลาที่จะให้ task นั้นทำงาน


ภาพที่ 1 ตารางแสดงข้อมูลสรุปของ task ที่สร้างขึ้น

การสร้าง task
ให้ทำการกดปุ่ม create สีเขียวทางซ้ายบนของตาราง (ภาพที่ 1) เพื่อเข้าสู่เมนูการสร้าง task (ภาพที่ 2ก-ค)


ภาพที่ 2 เมนูการสร้าง task

  1. Task name เป็นการกำหนดชื่อ task
  2. Schedule เป็นการกำหนดรูปแบบที่ทำแบบครั้งเดียวหรือทำซ้ำ
  3. การตั้งเวลา หากเลือกแบบครั้งเดียว ระบบจะใช้เลือกวันที่และเวลาที่จะให้ เกิดการ execute script ของ task นี้ หากเลือกเป็นแบบทำซ้ำ ระบบจะให้กำหนดเวลาที่ทำงานในรูปแบบ crontab (* * * * ) ทั้งนี้หากผู้ใช้ไม่สะดวกในการตั้งเวลาทำซ้ำในรูปแบบ crontab ระบบมีปุ่ม help ด้านท้ายของกล่องรับ input นี้ (ภาพที่ 2ข) เพื่อเข้าสู่ระบบช่วยสร้าง crontab แบบอย่างง่าย โดยมีวิธีการใช้งานตามภาพที่ 3

    *ภาพที่ 3 วิธีการใช้งานระบบช่วยสร้าง crontab แบบอย่างง่าย
  4. การเลือกให้แจ้งเตือนผลลัพธ์ของการ execute ทาง email ของผู้สร้าง task หรือไม่
  5. เลือกรูปแบบของ script ที่จะใช้ในการ execute โดยสามารถเลือกได้ 2 โหมดคือ custom code ผู้ใช้ต้องป้อน python code ลงใน กล่องข้อความ code (6) ด้านล่าง และโหมด file from drive คือการรัน script python ที่อยู่ใน shared drive ของผู้ใช้ (ภาพที่ 2ค) โดยหากเลือกโหมดนี้ จะมีกล่องข้อความให้ผู้ใช้กดเพื่อเรียกหน้า drive ขึ้นมาให้ผู้ใช้เลือก script ที่ต้องการ จะปรากฏชื่อไฟล์ ในกล่องข้อความ file name chooses จากนั้นกดปุ่ม choose file ระบบจะทำการกรอกชื่อไฟล์ให้อัตโนมัติ (ภาพที่ 4)

เมื่อผู้ใช้ตั้งค่าเสร็จสิ้นแล้ว กดปุ่ม create task หรือเลือก back เพื่อยกเลิกการสร้าง task


ภาพที่ 4 modal การเลือกไฟล์จาก shared drive

การแก้ไข task
ให้ทำการกดปุ่ม edit สีเหลืองทางซ้ายบนของตาราง (ภาพที่ 1)
ปุ่มนี้จะเป็นการแก้ไข task ที่สร้างไว้แล้ว โดยผู้ใช้ต้องเลือก task ที่จะทำการแก้ไขด้วยการเช็คเครื่องหมายถูกหน้า task นั้นที่ปรากฏในตารางสรุป โดยระบบอนุญาตให้แก้ไขได้เพียงครั้งละ 1 task หากเลือกหลาย task จะเป็นการ control task ที่เลือกแทน โดยมีทั้งหมด 4 รูปแบบการควบคุม (ภาพที่ 5)
  1. Run task เป็นการสั่ง execute task ทั้งหมดที่เลือก
  2. Stop task เป็นการยกเลิกการ execute task ทั้งหมดที่เลือก
  3. Start schedule เป็นการสั่งให้มีการตั้งเวลา task ที่เลือกทั้งหมด (จะสามารถสั่งให้ทำงานได้เฉพาะที่เป็บแบบทำซ้ำเท่านั้น)
  4. Cancel schedule เป็นการยกเลิกการตั้งเวลา task ทั้งหมดที่เลือก


ภาพที่ 5 modal การเลือกไฟล์การควบคุมการทำงานหลาย task พร้อมกัน

ในการแก้ไข task จะมีความคล้ายกับการสร้าง task โดยที่แตกต่างคือเพิ่มฟีเจอร์การทดลอง execute code ได้ ด้วยการกดปุ่ม test โดยผลลัพธ์จะแสดงที่กล่องข้อความด้านล่าง โดยเมื่อต้องการบันทึกการแก้ไข ให้กดปุ่ม update task หากยกเลิกให้กด back (ภาพที่ 6)


ภาพที่ 6 เมนูการแก้ไข task

การลบ task
ในการลบ task ที่สร้างไว้ ให้กดที่ปุ่ม delete สีแดงทางซ้ายบนของตาราง (ภาพที่ 1) โดยผู้ใช้สามารถลบ task ที่ต้องการโดยเลือก task นั้นผ่านการเลือกเครื่องหมายถูก หน้า task ที่ต้องการ (ภาพที่ 7) แล้วกดปุ่ม delete ระบบจะถามยืนยันให้อีกครั้ง ทั้งนี้สามารถลบ task ที่ไม่ได้อยู่ระหว่างการ execute หรือ task ที่ไม่ได้กำหนดเวลาการทำงานเท่านั้น ทั้งนี้ผู้ใช้สามารถหยุดการ execute หรือ ตั้งเวลา ผ่านการกดปุ่มควบคุมบนตารางได้ทันที


ภาพที่ 7 การเลือก task เพื่อแก้ไขหรือลบ