ถ้าเพจที่มีการร้องขอแบตช์ถูกปิดการประมวลผลชุดจะหยุดหรือไม่
ใช่มันจะหยุด
มันจะรีสตาร์ทหรือไม่เมื่อมีการเปิด URL เดียวกันอีกครั้ง บางครั้งโมดูลโอนย้ายยังคงดำเนินต่อไป แต่อาจใช้คิวหรือไม่
ดัง Dinesh กล่าวว่ามันขึ้นอยู่กับการใช้งาน
คุณควรใช้การโยกย้ายโดยใช้ drush เพราะ
Drush ทำงานที่บรรทัดคำสั่งและไม่อยู่ภายใต้การ จำกัด เวลาใด ๆ (โดยเฉพาะอย่างยิ่ง max_execution_time ของ PHP ไม่ได้ใช้) ดังนั้นเมื่อคุณเริ่มกระบวนการโยกย้ายที่ทำงานผ่าน drush ก็จะเริ่มขึ้นและทำงานต่อไปจนกว่าจะเสร็จ
เมื่อรันกระบวนการผ่านเว็บอินเตอร์เฟส PHP max_execution_time (โดยทั่วไปจะใช้เวลา 30 วินาทีถ้าไม่น้อยกว่า) ดังนั้นสำหรับกระบวนการที่ต้องใช้เวลานานเราจำเป็นต้องใช้ Batch API ซึ่งจัดการการแยกย่อยของกระบวนการในหลาย ๆ คำขอ ดังนั้นกระบวนการโยกย้ายจะเริ่มต้นขึ้นทำงานเป็นเวลา 25 วินาทีหรือมากกว่านั้นจากนั้นหยุดและปล่อยให้ Batch API ออกคำขอหน้าใหม่ซึ่งกระบวนการโยกย้ายจะเริ่มต้นใหม่อีกครั้ง
ดังนั้นเข้าใจว่าทำไม Drush ถึงดีกว่า
มันเร็วกว่า
Batch API นำเสนอค่าใช้จ่ายจำนวนมาก - การปิดและเรียกซ้ำการร้องขอหน้ากระบวนการโยกย้ายต้องทำงานผ่านตัวสร้างที่จำเป็นทั้งหมดอีกครั้งการเชื่อมต่อฐานข้อมูลที่สร้างขึ้นใหม่และเรียกใช้แบบสอบถามอีกครั้งและสำหรับการนำเข้าบางส่วนจะต้องเลือก ที่เหลือค้างไว้ - หากมีการนำเข้า 500 ระเบียนแรกของแหล่งข้อมูลนั้นจำเป็นต้องค้นหาระเบียน 501 ขึ้นอยู่กับรูปแบบของแหล่งที่มาและวิธีการสร้างของคุณสิ่งนี้อาจปรับขนาดได้หรือไม่ - หากคุณใช้เครื่องหมาย highwater กับแหล่งที่มาของ SQL แบบสอบถามนั้นสามารถกำจัดระเบียนก่อนหน้าและเริ่มต้นทันทีที่คุณออก ถ้าไม่เช่นนั้นการโยกย้ายจำเป็นต้องเลื่อนดูแหล่งข้อมูลเพื่อค้นหาระเบียนที่ไม่ได้นำเข้าครั้งแรก ด้วยพูดไฟล์ XML ขนาดใหญ่เป็นแหล่งที่มาของคุณ
มันน่าเชื่อถือมากขึ้น
การเรียกใช้การย้ายข้อมูลผ่านเบราว์เซอร์ของคุณจะเพิ่มเดสก์ท็อปของคุณและการเชื่อมต่ออินเทอร์เน็ตในพื้นที่ของคุณเนื่องจากเป็นจุดที่ล้มเหลว ความผิดพลาดของเครือข่ายเมื่อ Batch API เคลื่อนไปยังหน้าถัดไปคำขอเกิดความผิดพลาดของเบราว์เซอร์การปิดแท็บหรือหน้าต่างผิดโดยไม่ตั้งใจอาจทำให้การย้ายข้อมูลของคุณขัดจังหวะได้ การทำงานใน drush จะช่วยลดส่วนที่เคลื่อนไหวได้ - คุณกำจัดเดสก์ท็อปและการเชื่อมต่ออินเทอร์เน็ตในพื้นที่เป็นปัจจัย
มันมีประโยชน์มากกว่า
หากมีข้อผิดพลาดเกิดขึ้นขณะทำงานใน Drush หากมีข้อความแสดงข้อผิดพลาดที่เป็นประโยชน์คุณจะเห็นข้อความเหล่านั้น ความล้มเหลวในการใช้ Batch API มักจะถูกกลืนลงไปและสิ่งที่คุณได้เห็นก็คือการที่ไร้ประโยชน์อย่างสมบูรณ์ "คำขอ AJAX HTTP ถูกยกเลิกอย่างผิดปกติข้อมูลการดีบักจะตามมาเส้นทาง: / batch? id = 901 & op = do StatusText: ReadyState: 4"
คุณสามารถค้นหาข้อมูลเพิ่มเติมเกี่ยวกับเรื่องนี้ที่นี่
ในระหว่างนี้หากคุณต้องการเรียกใช้แบตช์แม้ว่าจะปิดหน้าต่างเบราว์เซอร์ก็ตามให้พิจารณาโมดูลการประมวลผลในเบื้องหลัง มันมีชุดพื้นหลัง submodule ซึ่งไม่หลอกลวง
โมดูลนี้ใช้แทน Batch API ที่มีอยู่และรันงานแบ็ตช์ในกระบวนการพื้นหลัง ซึ่งหมายความว่าหากคุณออกจากหน้าแบตช์งานจะดำเนินต่อไปและคุณสามารถกลับไปที่ตัวบ่งชี้ความคืบหน้าในภายหลัง