Task Scheduler ในแบ็กเอนด์ของแอปพลิเคชัน AppMaster เช่นเดียวกับในกรณีคลาสสิกของแบ็กเอนด์ จะสร้างสถานการณ์ซ้ำ ตัวอย่างเช่น เมื่อคุณต้องดำเนินการบางอย่างตามกำหนดเวลา ตัวอย่างคลาสสิกของงานดังกล่าวคือตัวอย่างการล้างไฟล์ชั่วคราวบนเซิร์ฟเวอร์ การสำรองข้อมูลรายสัปดาห์ การสร้างรายงานตามอัลกอริทึมที่กำหนด เป็นต้น
ลองพิจารณาตัวอย่างการใช้ตัวกำหนดเวลางานในแบ็กเอนด์ของแอปพลิเคชัน AppMaster สมมติว่าคุณต้องการสร้างกระบวนการที่ทุกเช้าเวลา 9.00 น. จะส่งสภาพอากาศไปยังหมายเลขโทรศัพท์มือถือของผู้ใช้
ดังนั้นงานจะถูกแบ่งออกเป็นหลายขั้นตอนทางตรรกะ:
- การติดตั้งและกำหนดค่าโมดูลสำหรับการส่งข้อความมือถือ
- การสร้างและกำหนดค่ากระบวนการ API คำขอภายนอก
- การตั้งค่าตัวกำหนดเวลาในแบ็กเอนด์ของแอปพลิเคชัน
1. การติดตั้งและกำหนดค่าโมดูลสำหรับการส่งข้อความมือถือ โมดูล Nexmo ช่วยให้คุณสามารถรวมความสามารถในการส่งข้อความ SMS ไปยังหมายเลขที่เลือกไว้ในแอปพลิเคชัน AppMaster
- คีย์ API - คีย์ API ที่สามารถรับได้ในบัญชี Nexmo ของคุณ ( https://dashboard.nexmo.com/settings );
- API Secret - คีย์ส่วนตัวที่ใช้ร่วมกับคีย์ API เพื่อระบุผู้ใช้ คุณสามารถรับได้ในบัญชี Nexmo ของคุณ ( https://dashboard.nexmo.com/settings );
- จากหมายเลข - หมายเลขที่ระบุระหว่างการลงทะเบียนในบัญชี Nexmo ของคุณ
กระบวนการทางธุรกิจต่อไปนี้ได้รับการติดตั้งโดยอัตโนมัติด้วยการติดตั้งโมดูล:
- Nexmo.Send SMS - ให้คุณส่งข้อความไปยังหมายเลขที่ระบุผ่าน
โมดูล Nexmo:
- โทรศัพท์ [โทรศัพท์] - หมายเลขโทรศัพท์ที่จะส่งข้อความ
- เนื้อหา [สตริง] - ข้อความ;
2. ทรัพยากรบนเว็บ OpenWeather API ฟรีจะถูกใช้เป็นแหล่งข้อมูลสภาพอากาศ ( https://openweathermap.org/api ) ขั้นตอนแรกคือการสร้างเทมเพลต API คำขอภายนอก เทมเพลตคำขอ API จะแสดงในส่วนกระบวนการทางธุรกิจของแท็บคำขอ API ภายนอก หากต้องการสร้างเทมเพลตใหม่ ให้คลิกสร้างคำขอ API
ประเภทคำขอ: GET
ที่อยู่คำขอ: https://api.openweathermap.org/data/2.5/weather
แบบสอบถามพารามิเตอร์:
- Lat [สตริง] - ละติจูด
- ลอน [สตริง] - ลองจิจูด
- Appid [สตริง] - คีย์ OpenWeather API
ในส่วนหนึ่งของงานนี้ เราสนใจเพียงไม่กี่ฟิลด์ของเนื้อหาการตอบสนองในหัวข้อหลัก ( https://openweathermap.org/api/one-call-3 )
- อุณหภูมิ [ลอย] - อุณหภูมิ
- Temp_min [float] - อุณหภูมิต่ำสุด
- Temp_max [ลอย] - อุณหภูมิสูงสุด
- แรงดัน [ลอย] - แรงดัน
- ความชื้น [ลอย] - ความชื้น
3. ก่อนตั้งค่าตัวกำหนดเวลางาน คุณต้องสร้างกระบวนการทางธุรกิจที่จะรับข้อมูลสภาพอากาศผ่าน API กระบวนการทางธุรกิจมีลักษณะดังนี้:
- Make Weather Query Model In - สร้างแบบจำลองพารามิเตอร์คำขอเสมือน Lon, lat - พิกัดของตำแหน่งที่ต้องการ, appid - คีย์ API ของบริการ OpenWeather;
- คำขอ API: สภาพอากาศ - กระบวนการทางธุรกิจที่รับผิดชอบในการโต้ตอบกับ OpenWeather API
- Expand Weather: Body Model Out - จำเป็นเพื่อปรับใช้โมเดลการตอบสนองของร่างกาย
- Expand Weather: Body Model Out_main - ขยายโมเดลหลักของเนื้อความของการตอบสนองคำขอ Body เพื่อให้ได้อุณหภูมิ (อุณหภูมิ)
- เป็นสตริง - แปลงค่าฟิลด์ temp เป็นประเภทสตริง
- Nexmo: ส่ง SMS - ส่งข้อความพร้อมข้อมูลเกี่ยวกับอุณหภูมิ (เนื้อหา) ไปยังหมายเลขโทรศัพท์ที่ระบุ (โทรศัพท์)
ตั้งค่าตัวจัดกำหนดการในส่วนกระบวนการทางธุรกิจของแท็บตัวจัดกำหนดการ
การตั้งค่าตัวกำหนดเวลาในแท็บกำหนดการจะแตกต่างกันไปตามประเภท
มาพิจารณากันโดยละเอียด
1. รายวัน - อนุญาตให้กำหนดตารางเวลารายวัน
- เวลา - กำหนดเวลาใน UTC+0 ที่ตัวกำหนดตารางเวลาจะเริ่ม BP ที่เลือก
- วันในสัปดาห์ - กำหนดวันในสัปดาห์เพื่อให้ตัวกำหนดตารางเวลาทำงาน
- เริ่มต้นโดยอัตโนมัติ - หากตั้งค่าเป็น True BP ใหม่จะไม่เริ่มต้นหากยังไม่เสร็จสิ้น ค่าเริ่มต้น: เท็จ
- ลองใหม่โดยอัตโนมัติ - เริ่มต้นกระบวนการใหม่โดยอัตโนมัติหากถูกขัดจังหวะ/เริ่มต้นไม่สำเร็จ
ลองใหม่อีกครั้ง การประมวลผลรายการที่ล้มเหลว - จำนวนครั้งที่พยายามเริ่มกระบวนการใหม่
รอก่อนที่จะลองใหม่แต่ละครั้ง - หน่วงเวลาก่อนแต่ละช็อตเพื่อเริ่มกระบวนการใหม่
- บังคับออก - บังคับให้ยุติกระบวนการหากไม่เสร็จสิ้นภายในไม่กี่วินาที จริงตามค่าเริ่มต้น จำนวนวินาทีจนกว่าจะเสร็จสิ้นคือ 3 วินาที โดยค่าเริ่มต้น
2. วางแผนรายเดือน - รายเดือน
- เวลา - กำหนดเวลาใน UTC+0 ที่ตัวกำหนดตารางเวลาจะเริ่ม BP ที่เลือก
- วันในสัปดาห์ - ประกอบด้วยการตั้งค่าสองแบบ:
ทำซ้ำความถี่:
- ก่อนใคร
- ทุกวินาที
- ทุกๆสาม
- ทุกสี่
- วันนี้
วันในสัปดาห์ - กำหนดวันในสัปดาห์
- เดือน - เดือนถูกกำหนด
- Auto Start - หากตั้งค่าเป็น True PSU ใหม่จะไม่เริ่มทำงานเว้นแต่จะเสร็จในเร็วๆ นี้ ค่าเริ่มต้น: เท็จ
- ลองใหม่โดยอัตโนมัติ - เริ่มต้นกระบวนการใหม่โดยอัตโนมัติหากถูกขัดจังหวะ/ไม่เริ่มทำงาน
ลองประมวลผลรายการที่ล้มเหลวอีกครั้ง - จำนวนกระบวนการเริ่มต้นใหม่
รอก่อนที่จะลองใหม่แต่ละครั้ง - หน่วงเวลาก่อนที่จะพยายามเริ่มกระบวนการใหม่แต่ละครั้ง
- Force Quit - ยุติกระบวนการหากยังไม่เสร็จสิ้นภายในไม่กี่วินาที จริงตามค่าเริ่มต้น จำนวนวินาทีจนกว่าจะเสร็จสิ้นคือ 3 วินาที โดยค่าเริ่มต้น
3. เป็นระยะ - ช่วยให้คุณกำหนดค่าความถี่ของตัวกำหนดตารางเวลาได้อย่างยืดหยุ่น
- ทุกๆ - ความสามารถในการตั้งค่าการทำซ้ำทุกๆ N วินาที/นาที/ชั่วโมง/วัน ค่าเริ่มต้น: ทุก 1 ชั่วโมง
- เริ่มต้นโดยอัตโนมัติ - หากตั้งค่าเป็น True BP ใหม่จะไม่เริ่มต้นหากยังไม่เสร็จสิ้น ค่าเริ่มต้น: เท็จ
- ลองใหม่โดยอัตโนมัติ - รีสตาร์ทกระบวนการโดยอัตโนมัติหากถูกขัดจังหวะ/ไม่เริ่มต้นสำเร็จ
ลองใหม่อีกครั้ง การประมวลผลรายการที่ล้มเหลว - จำนวนครั้งที่พยายามเริ่มกระบวนการใหม่
รอก่อนที่จะลองใหม่แต่ละครั้ง - หน่วงเวลาก่อนแต่ละช็อตเพื่อเริ่มกระบวนการใหม่
- บังคับออก - บังคับให้ยุติกระบวนการหากไม่เสร็จสิ้นภายในไม่กี่วินาที จริงตามค่าเริ่มต้น จำนวนวินาทีจนกว่าจะเสร็จสิ้นคือ 3 วินาที โดยค่าเริ่มต้น
4. หลังจากเริ่มแอพ - ผู้วางแผนงานครั้งเดียว
- ความล่าช้า - กำหนดความล่าช้าระหว่างการเริ่มแอปพลิเคชันและการเริ่มต้นใช้งาน ค่าเริ่มต้น - 0 วินาที
- ลองใหม่โดยอัตโนมัติ - รีสตาร์ทกระบวนการโดยอัตโนมัติหากถูกขัดจังหวะ/ไม่เริ่มต้นสำเร็จ
ลองใหม่อีกครั้ง การประมวลผลรายการที่ล้มเหลว - จำนวนครั้งที่พยายามเริ่มกระบวนการใหม่
รอก่อนที่จะลองใหม่แต่ละครั้ง - หน่วงเวลาก่อนแต่ละช็อตเพื่อเริ่มกระบวนการใหม่
- บังคับออก - บังคับให้ยุติกระบวนการหากไม่เสร็จสิ้นภายในไม่กี่วินาที จริงตามค่าเริ่มต้น จำนวนวินาทีจนกว่าจะเสร็จสิ้นคือ 3 วินาที โดยค่าเริ่มต้น
5. ก่อนจบแอป - เรียกใช้ตัวกำหนดตารางเวลาทุกครั้งที่แอปพลิเคชันสิ้นสุด
- ลองใหม่โดยอัตโนมัติ - รีสตาร์ทกระบวนการโดยอัตโนมัติหากถูกขัดจังหวะ/ไม่เริ่มต้นสำเร็จ
ลองใหม่อีกครั้ง การประมวลผลรายการที่ล้มเหลว - จำนวนครั้งที่พยายามเริ่มกระบวนการใหม่
รอก่อนที่จะลองใหม่แต่ละครั้ง - หน่วงเวลาก่อนที่จะพยายามเริ่มกระบวนการใหม่แต่ละครั้ง
- บังคับออก - บังคับให้ยุติกระบวนการหากไม่เสร็จสิ้นภายในไม่กี่วินาที จริงตามค่าเริ่มต้น จำนวนวินาทีจนกว่าจะเสร็จสิ้นคือ 3 วินาที โดยค่าเริ่มต้น
ในแท็บ Params ของการตั้งค่าตัวกำหนดตารางเวลา คุณยังสามารถส่งพารามิเตอร์ไปยังอินพุต BP เมื่อตัวกำหนดตารางเวลาเปิดตัว:
ในตัวอย่างของเรา การตั้งค่าตัวกำหนดตารางเวลามีลักษณะดังนี้:
- ข้อความจะถูกส่งทุกวันเวลา 9.00 น. UTC+0
- พยายามเริ่มกระบวนการใหม่โดยอัตโนมัติ 3 ครั้งโดยมีความล่าช้า 10 นาทีระหว่างการพยายามแต่ละครั้ง หากกระบวนการไม่เริ่มทันที
- บังคับให้ยุติกระบวนการหากยังไม่เสร็จสิ้นภายในสามวินาที
แอปพลิเคชันของเราใช้งานและทำงานในแบ็กเอนด์ ดังนั้นเพื่อให้ใช้งานได้ ก็เพียงพอที่จะเผยแพร่