[BPMN] Camunda – Job Executor เผื่อเวลาไว้สักนิดก็ดี

หลังจากลองทดสอบรันเครื่องมือที่เชื่อมกับ Camunda BPMN Engine แล้วมันแปลกๆ เคสที่เคยทำได้กลับไม่ผ่านซักงั้น หรือดักการค่าแล้วไม่ได้ตามที่คิด โดยสาเหตุที่ผลสงสัยน่าจะเกี่ยวกับการทำงานของเจ้า Job Executor

Job Executor คือ อะไร

  • มันเป็นตัวจัดการทุกสิ่งที่อย่างที่เป็นงานที่ต้องทำล่วงหน้า หรือมีกำหนดการชัดเจนครับ
  • ซึ่งถ้าเราทำแบบจำลองที่มีการตั้งเวลาไว้ ในแง่ของตัว BPMN Engine มันจะเอาเงื่อนไขเหล่านั้นมาตั้งกำหนดการตามเวลาไว้
  • โดยเมื่อถึงเวลาที่กำหนดเจ้า Job Executor เข้ามากวาดงานไปทำต่อครับ

ถ้าลองดูในส่วน Cockpit ของ Camunda เมื่อ Start Process และทำไปถึงจุดที่ได้มีเงื่อนไขที่เกินกับเวลาไว้ ตัว Camunda ไปสร้าง Job ไว้ครับ ถ้าดูจากแบบจำลองที่ผมแนบพบว่า NextDay คือ การรอจนถึงวันถัดไปครับ ในมุมของ Camunda จะไปสร้าง Job ให้ทำงานตอนวันที่ T+1 ครับ

ปัญหาที่ผมเจอมัน คือ อะไร

  • เนื่องจากงานที่ผมทำ เป็นเครื่องมือที่ต้องเชื่อมกับ Camunda ผ่าน REST-API เพื่อควบคุมการทำงานของ BPMN ตาม Test Case ที่กำหนด และกิจกรรมบางอย่างที่เป็นเวลาจะถูกฝากชีวิตไว้กับ Job Executor แหละครับ
  • ปัญหาที่ผมพบ คือ Job Executor มันทำงานช้ากว่า เครื่องมือ หรือ โปรแกรมที่ผมนำมาเชื่อมแหละครับ

ทางแก้ไข - ปรับจูนให้มันตรงกัน

  • ไม่ว่าจะเป็นการเพิ่มการหน่วงเวลาในเครื่องมือของผมเพิ่ม
  • หรือ ไปทำการแก้ไข waitTimeInMillis เพื่อให้เจ้าตัว Job Executor เข้ามาตรวจสอบและกวาดงานไปทำต่อครับ (อ้างอิงจาก https://docs.camunda.org/manual/latest/reference/deployment-descriptors/tags/job-executor/)
    • แต่ค่า waitTimeInMillis ปรับให้มันน้อยๆมากๆก็ไม่ไดันะครับ ถ้าเครื่องไม่แรงพอ CPU จะมันพุ่งสูงและค้างแทนครับ

Discover more from naiwaen@DebuggingSoft

Subscribe to get the latest posts sent to your email.