ข้ามไปยังเนื้อหา
getnextpdf.com

Enterprise รุ่น

ไปป์ไลน์เอาต์พุต

NextPDF Enterprise ประสานการรันแบบ batch ขนาดใหญ่ของ manifest output-pipeline ของ NextPDF Pro ด้วยขีดจำกัดการทำงานพร้อมกันที่กำหนดค่าได้และการส่งต่อความสอดคล้องแบบเลือกใช้บนผลลัพธ์ที่เสร็จสมบูรณ์ มันคือชั้น batch ที่อยู่บน output pipeline ของ Pro

ความสามารถนี้จัดส่งใน NextPDF Enterprise (nextpdf/enterprise) และเปิดใช้งานด้วย envelope ใบอนุญาตระดับ Enterprise การปรับใช้ที่ไม่มีสิทธิ์นั้นจะไม่โหลดคลาสของความสามารถนี้ เปรียบเทียบรุ่นและรับสิทธิ์การใช้งาน

พื้นผิว batch ของ Enterprise สร้างต่อยอดบน output pipeline ของ Pro (pro.output.pipeline) ซึ่งเป็นข้อกำหนดเบื้องต้นมากกว่าจะเป็นเกต ไม่มีโค้ดความสามารถต่อฟีเจอร์แยกต่างหาก ตัวประสาน batch และการส่งต่อความสอดคล้องพร้อมใช้งานทุกที่ที่ติดตั้งแพ็กเกจ nextpdf/enterprise ที่มีสิทธิ์

Terminal window
composer require nextpdf/enterprise:^3

BatchPipelineOrchestrator รันอินสแตนซ์ PipelineManifest จำนวนมากเป็นหนึ่ง batch manifest แต่ละรายการถูกรันผ่าน PipelineExecutor ของ Pro ตัวประสานเพิ่มการประสาน batch ตัวป้องกันทรัพยากรที่มีขอบเขต (จำนวน manifest ต่อ batch ถูกจำกัด) การจัดการ timeout ต่อ batch และการส่งต่อความสอดคล้องแบบเลือกใช้

BatchPipelineConfig ควบคุมสามสิ่ง ได้แก่ จำนวน worker callback ที่ทำงานพร้อมกันสูงสุด timeout ทั่วทั้ง batch เป็นมิลลิวินาทีแบบเลือกใช้ และว่าจะรันการตรวจสอบความสอดคล้องบนทุกผลลัพธ์หลังจากไปป์ไลน์เสร็จสมบูรณ์หรือไม่ เมื่อเปิดใช้งานการตรวจสอบความสอดคล้อง ComplianceHandoff ผสานเป็นขั้นตอนของไปป์ไลน์ที่ตรวจสอบ PDF ที่สืบทอดมาแต่ละรายการอีกครั้งผ่านเกตเวย์ความสอดคล้องของ Enterprise ดังนั้นเอกสารที่ถูกแก้ไขโดยไปป์ไลน์จึงถูกตรวจสอบใหม่แทนที่จะเชื่อถือจากสถานะก่อนการแก้ไข

ในการปรับใช้แบบใช้งานจริง การกระจาย worker แบบขนานและ backpressure ถูกจัดการโดย sidecar การทำงานแยกต่างหาก ตัวประสาน PHP ที่อธิบายในที่นี้จัดหาการประสาน batch และตรรกะการส่งต่อความสอดคล้อง และถูกเรียกใช้โดย job worker แทนที่จะถูกเรียกโดยตัวจัดการคำขอโดยตรง

การสร้างแบบ batch ปริมาณสูงแบ่งออกเป็นสองข้อกังวล ได้แก่ การประสานว่า manifest ใดรันภายใต้การรับประกันแบบใด และการขับเคลื่อน throughput แบบขนานดิบ NextPDF เก็บความหมายของการประสานและความสอดคล้องไว้ในตัวประสาน PHP แบบกำหนดผลได้นี้ และมอบหมายการกระจาย worker แบบขนานและ backpressure ให้กับ sidecar การทำงานแยกต่างหาก ขอบเขตนั้นทำให้ชั้น throughput ปรับขยายการทำงานพร้อมกันได้อย่างอิสระในขณะที่ตัวประสานยังคงเรียบง่าย มีขอบเขต และตรวจสอบได้ ขอบเขตที่เข้มงวดของ manifest ต่อ batch ทำให้หน่วยความจำสูงสุดคาดการณ์ได้ ดังนั้นการส่งขนาดใหญ่หนึ่งครั้งจึงไม่สามารถลดทอน worker pool ได้ การส่งต่อความสอดคล้องตรวจสอบผลลัพธ์ที่สืบทอดมาแต่ละรายการซ้ำแทนที่จะเชื่อถือสถานะก่อนการแก้ไข และล้มเหลวแบบปิด manifest ที่เสร็จสมบูรณ์จะผ่านก็ต่อเมื่อเกตเวย์ยืนยันความสอดคล้องเท่านั้น ไม่ใช่โดยปริยาย

ภูมิหลังการออกแบบ High-volume document generation

คลาสความรับผิดชอบ
BatchPipelineOrchestratorรัน manifest จำนวนมากเป็น batch ด้วยการทำงานพร้อมกันที่มีขอบเขต
BatchPipelineConfigการทำงานพร้อมกันสูงสุด timeout ของ batch ตัวสลับเปิด-ปิด compliance-on-complete
BatchPipelineResultผลรวม ได้แก่ ผลลัพธ์ต่อ manifest จำนวนที่เสร็จสมบูรณ์และล้มเหลว และเวลา
ComplianceHandoffขั้นตอนการตรวจสอบความสอดคล้องซ้ำเมื่อสิ้นสุดไปป์ไลน์แบบเลือกใช้
use NextPDF\Enterprise\OutputPipeline\BatchPipelineOrchestrator;
$result = (new BatchPipelineOrchestrator($executor))->executeBatch($manifests);
use NextPDF\Enterprise\OutputPipeline\BatchPipelineOrchestrator;
use NextPDF\Enterprise\OutputPipeline\BatchPipelineConfig;
$config = new BatchPipelineConfig(
maxConcurrency: 4,
timeoutMs: 600_000,
complianceCheckOnComplete: true,
);
$result = (new BatchPipelineOrchestrator($executor, $config))
->executeBatch($manifests, $variablesMap);
$logger->info('pipeline.batch', [
'completed' => $result->completedCount,
'failed' => $result->failedCount,
]);
  • batch บังคับขอบเขตบนของจำนวน manifest การเกินขอบเขตจะยกข้อผิดพลาด resource-guard แทนที่จะลดทอนอย่างเงียบ ๆ
  • timeout ทั่วทั้ง batch เท่ากับศูนย์หมายถึงไม่มี timeout ของ batch ให้ตั้งค่าที่มีขอบเขตจำกัดในการใช้งานจริง เพื่อไม่ให้ manifest ที่ค้างขัดขวาง batch อย่างไม่มีกำหนด
  • การส่งต่อความสอดคล้องต้องการ PDF ที่จดจำได้ในผลลัพธ์ของขั้นตอนต้นน้ำ หากไม่พบ ขั้นตอนจะรายงานความล้มเหลวสำหรับ manifest นั้นแทนที่จะผ่านอย่างเงียบ ๆ
  • โมดูลนี้ขึ้นอยู่กับ output pipeline ของ Pro มันเพิ่มการประสาน batch ไม่ใช่โมเดลขั้นตอนใหม่

throughput ขยายตามการทำงานพร้อมกันที่กำหนดค่าไว้และต้นทุนต่อ manifest ควรตั้งค่าการทำงานพร้อมกันอย่างระมัดระวังเทียบกับ worker pool เพื่อไม่ให้ callback ทำให้มันอิ่มตัว ขอบเขตของ manifest ต่อ batch จำกัดหน่วยความจำสูงสุด

ตัวประสาน batch ประมวลผล manifest และตัวแปรใด ๆ ที่ผู้เรียกใช้จัดหามา ให้ปฏิบัติต่ออินพุตของไปป์ไลน์เช่นเดียวกับงาน PDF ที่ไม่น่าเชื่อถืออื่น ๆ การส่งต่อความสอดคล้องเป็นตัวช่วยตรวจสอบซ้ำ ไม่ใช่การควบคุมการให้สิทธิ์

ผลลัพธ์ของ batch อาจมีข้อมูลส่วนบุคคล การประมวลผลทำในกระบวนการและในเครื่อง ตัวประสานนี้ไม่ได้เรียกเครือข่ายขาออก ให้ใช้การควบคุมการเก็บรักษาของคุณเองกับผลลัพธ์ของ batch

การวัดและส่งข้อมูลที่ปลอดภัยและการขัดล้างบันทึก

หัวข้อที่มีชื่อว่า “การวัดและส่งข้อมูลที่ปลอดภัยและการขัดล้างบันทึก”

ผลลัพธ์ของ batch รายงานจำนวนและเวลา ไม่ใช่เนื้อหาของเอกสาร ให้ขัดล้างตัวระบุ manifest จากบันทึกหากมันเข้ารหัสข้อมูล tenant หรือข้อมูลคดี

ไม่มีการอ้างความสอดคล้องกับมาตรฐานสำหรับโมดูลนี้ มันเป็นชั้นการประสาน การส่งต่อความสอดคล้องแบบเลือกใช้มอบหมายให้เกตเวย์ความสอดคล้องของ Enterprise ซึ่งพกพาเอกสารอ้างอิงของตนเอง

โมดูลนี้ไม่ได้ทำการดำเนินการทางการเข้ารหัส

อินพุตหลักคือ manifest และตัวแปรที่ผู้เรียกใช้จัดหามา การลดผลกระทบ ได้แก่ ขอบเขตที่เข้มงวดของ manifest ต่อ batch การทำงานพร้อมกันที่มีขอบเขต การตรวจสอบผลลัพธ์ที่สืบทอดมาซ้ำแบบเลือกใช้ และการไม่มี network I/O ในตัวประสานเอง

  • executeBatch() รัน manifest แต่ละรายการผ่านตัวรัน pipeline ของ Pro และคืนผลลัพธ์ต่อ manifest พร้อมจำนวนที่เสร็จสมบูรณ์และล้มเหลวและเวลา
  • ขอบเขตที่เข้มงวดจำกัดจำนวน manifest ต่อ batch การเกินขอบเขตจะยกข้อผิดพลาด resource-guard แทนที่จะลดทอนอย่างเงียบ ๆ
  • timeout ทั่วทั้ง batch เป็นศูนย์หมายถึงไม่มี timeout ของ batch ค่าที่มีขอบเขตจำกัดจะจำกัด manifest ที่ค้าง
  • เมื่อเปิดใช้งาน การส่งต่อความสอดคล้องจะตรวจสอบ PDF ที่สืบทอดมาแต่ละรายการซ้ำและรายงานความล้มเหลวของขั้นตอนเมื่อไม่พบ PDF ที่จดจำได้ต้นน้ำแทนที่จะผ่านอย่างเงียบ ๆ

หน้านี้บันทึกเฉพาะพฤติกรรมที่สังเกตได้จากภายนอกและพื้นผิว public API ที่รองรับเท่านั้น เส้นทาง namespace ภายใน คลาสตัวช่วย ตารางกลไก ชื่อไฟล์ runbook และคำนำหน้า ticket อยู่นอกขอบเขต

NextPDF Core ไม่มีโมเดล output-pipeline การปรับใช้แบบ Core เท่านั้นประกอบขั้นตอนของตนเองโดยตรงกับ Core API ไม่มี manifest ไม่มีการประสาน batch และไม่มีการส่งต่อความสอดคล้อง

ในการปรับใช้แบบ Pro เท่านั้น พื้นผิวที่รองรับคือ output pipeline แบบ manifest เดียวของ Pro (pro.output.pipeline) คือ PipelineExecutor ของ Pro รันหนึ่ง manifest ในแต่ละครั้ง Pro ไม่ได้ จัดหาตัวประสาน batch ตัวป้องกัน batch แบบ bounded-concurrency timeout ต่อ batch หรือการส่งต่อความสอดคล้องของ Enterprise การกำหนดค่าที่ร้องขอการประสาน batch หรือการส่งต่อความสอดคล้องในการปรับใช้แบบ Pro เท่านั้นจะไม่มีส่วนประกอบ Enterprise มาตอบสนอง ดู Pro overview สำหรับพื้นผิวไปป์ไลน์ของ Pro

การประสาน batch ขอบเขตของ resource-guard และการต่อสาย compliance-handoff ถูกอธิบายในระดับพฤติกรรมเท่านั้น โปรโตคอลการกระจาย sidecar ภายใน ความหมายของ backpressure ภายใน และการต่อสาย compliance-gateway ภายในอยู่นอกขอบเขตของพื้นผิวสาธารณะและไม่ได้ทำซ้ำในที่นี้

ในการใช้งานจริง การกระจาย worker แบบขนานและ backpressure ถูกจัดการโดย sidecar การทำงานแยกต่างหาก ตัวประสาน PHP ที่อธิบายในที่นี้จัดหาการประสาน batch และตรรกะการส่งต่อความสอดคล้องและถูกเรียกใช้โดย job worker ไม่ใช่โดยตัวจัดการคำขอโดยตรง การกำหนดขนาด worker pool การจัดเตรียม sidecar และขีดจำกัดการทำงานพร้อมกันเทียบกับ PHP worker pool เป็นความรับผิดชอบของผู้ดำเนินการ การส่งต่อความสอดคล้องเป็นตัวช่วยตรวจสอบซ้ำ ไม่ใช่การควบคุมการให้สิทธิ์

การส่งต่อความสอดคล้องแบบเลือกใช้รันการตรวจสอบซ้ำเหนือเอกสารที่สืบทอดมา มันรายงานข้อค้นพบ ไม่ได้รับรองเอกสาร รับประกันความเพียงพอตามกฎระเบียบ หรือเป็นคำแนะนำทางกฎหมาย การตัดสินว่าผลลัพธ์เป็นไปตามภาระผูกพันของคุณหรือไม่เป็นความรับผิดชอบของคุณ