ฉันมีแบบฟอร์มที่กำหนดเองซึ่งจัดการสองขั้นตอนที่แตกต่างกันหลังจากการส่ง สมมติว่า
- กระบวนการที่ 1: ลบโหนดบทความทั้งหมด
- กระบวนการที่ 2: นำเข้าโหนดบทความจาก csv
ปัญหาคือแต่ละกระบวนการต้องมีแถบความคืบหน้าของตัวเอง ดังนั้นควรมีลักษณะดังนี้:
- ส่งแบบฟอร์มแล้ว
- แถบความคืบหน้าสำหรับกระบวนการที่ 1 เริ่มขึ้น (0%)
- แถบความคืบหน้าสำหรับขั้นตอนที่ 1 เสร็จสิ้น (100%)
- แถบความคืบหน้าสำหรับกระบวนการ 2 เริ่มขึ้น (0%)
- แถบความคืบหน้าสำหรับขั้นตอนที่ 2 เสร็จสิ้น (100%)
- เปลี่ยนเส้นทางไปยังแบบฟอร์ม
ถ้าฉันเพิ่ม batch_set()
สองครั้งในตัวจัดการการส่ง กระบวนการทั้งสองถูกดำเนินการ แต่แถบความคืบหน้าปรากฏขึ้นเพียงครั้งเดียว
// สร้างแบทช์ที่แตกต่างกันสองชุด
สาธารณะคงที่ฟังก์ชั่น getBatch1() {
$batch_builder = ใหม่ BatchBuilder();
$batch_builder->setTitle('กระบวนการ 1')
$batch_builder->addOperation(
[ตัวเอง :: คลาส 'processCallback1'],
);
ส่งคืน $batch_builder->toArray();
}
สาธารณะคงที่ฟังก์ชั่น getBatch2() {
$batch_builder = ใหม่ BatchBuilder();
$batch_builder->setTitle('กระบวนการ 2')
$batch_builder->addOperation(
[ตัวเอง :: คลาส 'processCallback2'],
);
ส่งคืน $batch_builder->toArray();
}
// ตัวจัดการการส่งแบบฟอร์มที่กำหนดเอง
ฟังก์ชันสาธารณะ sendForm () {
batch_set(MyBatchClass::getBatch1());
batch_set(MyBatchClass::getBatch2());
}
ดูเหมือนว่า:
- ส่งแบบฟอร์มแล้ว
- แถบความคืบหน้าสำหรับกระบวนการที่ 1 เริ่มขึ้น (0%)
- แถบแสดงความคืบหน้าสำหรับกระบวนการที่ 1 เสร็จสิ้น (100%) <- กระบวนการที่ 2 ก็เสร็จสิ้นในพื้นหลังเช่นกัน
- เปลี่ยนเส้นทางไปยังแบบฟอร์ม
ฉันจะรีสตาร์ทแถบความคืบหน้าได้อย่างไรเมื่อกระบวนการที่สองเริ่มต้นขึ้น