Cron Job
13 นาที
วิธีสร้าง cron job ของคุณใน parse บทนำ ส่วนนี้อธิบายวิธีที่คุณสามารถกำหนดเวลา cron job โดยใช้ ฟีเจอร์หลักของ parse server https //www back4app com/product/parse server ผ่าน back4app สำหรับบทเรียนนี้ ในฐานะตัวอย่าง คุณจะสร้าง cron job ที่ลบผู้ใช้ของคุณใน \<font color="#2166ae">parse dashboard\</font> ที่ยังไม่ได้ยืนยันอีเมลหลังจากที่พวกเขาลงทะเบียนไปแล้วสักระยะหนึ่ง ในทุกเวลา คุณสามารถเข้าถึงโปรเจกต์ที่สร้างขึ้นสำหรับบทเรียนนี้ได้ที่ ที่เก็บ github https //github com/back4app/android background jobs ข้อกำหนดเบื้องต้น ในการทำตามบทเรียนนี้ คุณต้องมี แอปที่สร้างขึ้นบน back4app หมายเหตุ โปรดติดตาม บทเรียนการสร้าง parse app ใหม่ https //www back4app com/docs/get started/new parse app เพื่อเรียนรู้วิธีการสร้าง parse app บน back4app ความรู้เกี่ยวกับ cloud code หมายเหตุ โปรดติดตาม บทเรียน cloud code สำหรับ android https //www back4app com/docs/android/parse cloud code หรือ บทเรียน cloud code สำหรับ ios https //www back4app com/docs เพื่อข้อมูลเพิ่มเติม อุปกรณ์ (หรือ อุปกรณ์เสมือน https //developer android com/studio/run/managing avds?hl=pt br ) ที่รัน android 4 0 (ice cream sandwich) หรือใหม่กว่า 1 สร้างโค้ด cron job ของคุณ สร้างไฟล์ \<font color="#2166ae"> js\</font> เพื่อใส่โค้ด cron job ของคุณ ในตัวอย่างนี้ จะมีการสร้างไฟล์ \<font color="#2166ae">main js\</font> ในไดเรกทอรี \<font color="#2166ae">cloud code\</font> กำหนดฟังก์ชันงานโดยใช้ \<font color="#2166ae">parse cloud job\</font> ในตัวอย่างนี้ โค้ดต่อไปนี้จะตรวจสอบผู้ใช้ทุกคนใน \<font color="#2166ae">parse dashboard\</font> , จากนั้นจะค้นหาผู้ที่ยังไม่ได้ยืนยันอีเมลหลังจากผ่านไปสักระยะและทำลายพวกเขา parse server 3 x main js 1 parse cloud job("removeinvalidlogin", async (request) => { 2 let date = new date(); 3 let timenow = date gettime(); 4 let intervaloftime = 3 60 1000; // the time set is 3 minutes in milliseconds 5 let timethen = timenow intervaloftime; 6 7 // limit date 8 let querydate = new date(); 9 querydate settime(timethen); 10 11 // the query object 12 let query = new parse query(parse user); 13 14 // query the users that still unverified after 3 minutes 15 query equalto("emailverified", false); 16 query lessthanorequalto("createdat", querydate); 17 18 const results = await query find({usemasterkey\ true}); 19 20 results foreach(object => { 21 object destroy({usemasterkey true}) then(destroyed => { 22 console log("successfully destroyed object" + json stringify(destroyed)); 23 }) catch(error => { 24 console log("error " + error code + " " + error message); 25 }) 26 }); 27 28 return ("successfully retrieved " + results length + " invalid logins "); 29 }); parse server 2 x main js 1 parse cloud job("removeinvalidlogin", function (request, response) { 2 var date = new date(); 3 var timenow = date gettime(); 4 var intervaloftime = 3 60 1000; // the time set is 3 minutes in milliseconds 5 var timethen = timenow intervaloftime; 6 7 // limit date 8 var querydate = new date(); 9 querydate settime(timethen); 10 11 // the query object 12 var query = new parse query(parse user); 13 14 // query the users that still unverified after 3 minutes 15 query equalto("emailverified", false); 16 query lessthanorequalto("createdat", querydate); 17 18 query find({ 19 success function (results) { 20 console log("successfully retrieved " + results length + " invalid logins "); 21 22 // destroying the invalid users 23 query each(function (object, err) { 24 object destroy({ 25 success function (object) { 26 response success("successfully destroyed object " + object objectid); 27 }, 28 error function (error) { 29 response error("error " + error code + " " + error message); 30 }, 31 usemasterkey true // very important!! 32 }) 33 }) 34 }, 35 error function (error) { 36 response error("error " + error code + " " + error message); 37 } 38 }); 39 }); จำเป็นต้องใช้ กุญแจหลัก ในกระบวนการนี้ คุณสามารถปรับเปลี่ยน \<font color="#2166ae"> intervaloftime\</font> เนื้อหาด้วยจำนวนเวลาที่คุณคิดว่าผู้ใช้ที่ไม่ได้รับการตรวจสอบยังสามารถมีบัญชีที่ใช้งานอยู่โดยไม่ต้องตรวจสอบได้ แค่ไม่ลืมว่าการทดสอบแอปพลิเคชันของคุณ ช่วงเวลาสั้นๆ จะดีกว่า ดังนั้นจึงแนะนำให้คุณตั้งค่า \<font color="#2166ae"> intervaloftime\</font> เนื้อหาเป็นสามนาทีเพื่อตรวจสอบว่าครอนจ็อบทำงานหรือไม่ และจากนั้นเปลี่ยนโค้ด javascript ด้วยจำนวนเวลาที่คุณต้องการจริงๆ \<font color="#2166ae">intervaloftime\</font> ที่จะเป็น อย่าลืมว่าการเปลี่ยนแปลงในไฟล์ javascript จะถูกคำนวณในแอปพลิเคชันของคุณก็ต่อเมื่อคุณอัปโหลดไฟล์อีกครั้งใน back4app cloud code block เพื่อทำเช่นนี้ ให้ลบ \<font color="#2166ae"> js\</font> ไฟล์ที่มี \<font color="#2166ae">intervaloftime\</font> เนื้อหาที่ไม่ต้องการและทำตามขั้นตอนที่ 2 เพื่ออัปโหลดไฟล์ที่มี \<font color="#2166ae">intervaloftime\</font> เนื้อหาที่ถูกต้อง 2 อัปโหลดครอนจ็อบไปยัง cloud code หากต้องการทราบข้อมูลเพิ่มเติมเกี่ยวกับวิธีเริ่มต้นใช้งาน cloud code ดูที่ คู่มือ cloud code สำหรับ android https //www back4app com/docs/android/parse cloud code หรือ คู่มือ cloud code สำหรับ ios https //www back4app com/docs ไปที่แอปของคุณที่ back4app https //www back4app com/ เว็บไซต์และคลิกที่ \<font color="#2166ae">แดชบอร์ด\</font> ค้นหา \<font color="#2166ae">cloud code\</font> และคลิกที่ \<font color="#2166ae">ฟังก์ชัน \& โฮสติ้งเว็บ\</font> มันดูเหมือนแบบนี้ 3\ อัปโหลดหรือสร้างไฟล์ใหม่ (คุณยังสามารถแก้ไข \<font color="#2166ae">main js\</font> ไฟล์ปัจจุบันโดยตรงในเบราว์เซอร์) จากนั้น คลิกที่ \<font color="#2166ae">deploy\</font> ตามที่แสดงที่นี่ 3 ตั้งเวลา cron job บน back4app ไปที่แอปของคุณที่ เว็บไซต์ back4app https //www back4app com/ และคลิกที่ \<font color="#2166ae">การตั้งค่าเซิร์ฟเวอร์\</font> ค้นหาบล็อก “งานเบื้องหลัง” และคลิกที่ \<font color="#2166ae">การตั้งค่า\</font> บล็อก “งานเบื้องหลัง” จะมีลักษณะดังนี้ 3\ หน้าจ้างงานเบื้องหลังจะปรากฏขึ้นและจะแสดงตัวเลือกสองตัว เบราว์เซอร์งานหรือกำหนดเวลางาน คลิกที่กำหนดเวลางาน ตามที่แสดงด้านล่าง หากคุณต้องการ \<font color="#2166ae">แก้ไข\</font> , \<font color="#2166ae">เรียกใช้ตอนนี้\</font> , หรือ \<font color="#2166ae">ลบ\</font> งาน cron ที่มีอยู่ คลิกที่ \<font color="#2166ae">เรียกดูงาน\</font> ปุ่ม 4\ หน้ากำหนดการงานจะปรากฏขึ้นและคุณต้องกรอกใน \<font color="#2166ae">คำอธิบาย\</font> ของงานของคุณด้วยคำอธิบายและยังกรอกใน \<font color="#2166ae">cloud job\</font> ด้วยชื่อที่คุณตั้งให้กับงาน cron ของคุณในบรรทัดแรกของโค้ด javascript ของมัน ในตัวอย่างนี้ ชื่อของงาน cron ที่สร้างขึ้นคือ \<font color="#2166ae">removeinvalidlogin\</font> 5\ คุณยังสามารถตั้งค่าตัวเลือกอื่น ๆ สำหรับงาน cron ของคุณ เช่น เวลาเริ่มต้นการทำงาน ว่ามันควรทำซ้ำหรือไม่ และบ่อยแค่ไหน หลังจากกรอกตัวเลือกเหล่านี้ตามความชอบของคุณแล้ว คลิกที่ \<font color="#2166ae">บันทึก\</font> ปุ่ม 4 ทดสอบแอปของคุณ สร้างผู้ใช้บางคนด้วย \<font color="#2166ae">emailverified\</font> คอลัมน์ตั้งค่าเป็น \<font color="#2166ae">false\</font> ที่ \<font color="#2166ae">parse dashboard\</font> , ตามที่แสดงด้านล่าง 2\ รันแอปพลิเคชันของคุณและรีเฟรช \<font color="#2166ae">parse dashboard\</font> มันควรจะทำลายผู้ใช้ที่ไม่ได้รับการยืนยัน สำหรับ \<font color="#2166ae">parse dashboard\</font> ที่แสดงข้างต้น นี่คือผลลัพธ์ คุณยังสามารถดูได้ว่าครอนจ็อบทำงานอยู่หรือไม่โดยการเข้าถึง back4app logs เพื่อทำเช่นนั้นให้ทำตามขั้นตอนเหล่านี้ ไปที่แอปของคุณที่ เว็บไซต์ back4app https //www back4app com/ และคลิกที่ \<font color="#2166ae">การตั้งค่าเซิร์ฟเวอร์\</font> ค้นหาบล็อก “logs” และคลิกที่ \<font color="#2166ae">การตั้งค่า\</font> บล็อก “logs” จะมีลักษณะดังนี้ 3 เลื่อนหน้าจอจนกว่าคุณจะเห็น \<font color="#2166ae">บันทึกระบบเซิร์ฟเวอร์\</font> ที่นั่นคุณควรพบข้อมูลเกี่ยวกับครอนจ็อบที่กำลังทำงานอยู่ตามที่แสดงด้านล่าง เสร็จเรียบร้อย! ในขั้นตอนนี้คุณสามารถกำหนดเวลาครอนจ็อบในแอปพลิเคชันของคุณโดยใช้ฟีเจอร์ของ parse server core ผ่าน back4app!