Перейти к содержимому
getnextpdf.com

Enterprise редакция

Конвейер вывода

NextPDF Enterprise координирует крупномасштабное пакетное выполнение манифестов выходного конвейера NextPDF Pro с настраиваемым ограничением конкурентности и необязательной передачей на проверку соответствия для завершённых выходов. Это пакетный слой поверх выходного конвейера Pro.

Эта возможность поставляется в составе NextPDF Enterprise (nextpdf/enterprise) и активируется лицензионным конвертом уровня Enterprise. Развёртывание без этого права не загружает классы возможности. Сравните редакции и получите лицензию.

Пакетная поверхность Enterprise строится на выходном конвейере Pro (pro.output.pipeline), который является предпосылкой, а не гейтом. Отдельного кода возможности для каждой функции нет; пакетный оркестратор и передача на проверку соответствия доступны везде, где установлен лицензированный пакет nextpdf/enterprise.

Окно терминала
composer require nextpdf/enterprise:^3

BatchPipelineOrchestrator выполняет множество экземпляров PipelineManifest как один пакет. Каждый манифест прогоняется через PipelineExecutor из Pro; оркестратор добавляет пакетную координацию, ограничитель ресурсов (число манифестов на пакет ограничено), обработку тайм-аута для каждого пакета и необязательную передачу на проверку соответствия.

BatchPipelineConfig управляет тремя вещами: максимальным числом одновременных колбэков воркеров, необязательным глобальным тайм-аутом пакета в миллисекундах и тем, выполняется ли проверка соответствия для каждого выхода после завершения конвейера. Когда проверка соответствия включена, ComplianceHandoff встраивается как шаг конвейера, который повторно проверяет каждый производный PDF через шлюз соответствия Enterprise, поэтому документ, изменённый конвейером, проверяется заново, а не принимается на доверие из его состояния до изменения.

В рабочих развёртываниях параллельная отправка воркерам и обратное давление обрабатываются отдельным sidecar-процессом выполнения; описанный здесь оркестратор на PHP обеспечивает пакетную координацию и логику передачи на проверку соответствия и вызывается воркером заданий, а не напрямую обработчиками запросов.

Высокообъёмная пакетная генерация делится на две задачи: координировать, какие манифесты выполняются и с какими гарантиями, и обеспечивать чистую параллельную пропускную способность. NextPDF держит семантику координации и соответствия в этом детерминированном оркестраторе на PHP и делегирует параллельную отправку воркерам и обратное давление отдельному sidecar-процессу выполнения. Эта граница позволяет слою пропускной способности масштабировать конкурентность независимо, тогда как оркестратор остаётся простым, ограниченным и поддающимся аудиту. Жёсткое ограничение на число манифестов в пакете делает пиковую память предсказуемой, поэтому одна большая заявка не может деградировать пул воркеров. Передача на проверку соответствия повторно проверяет каждый производный выход, а не доверяет его состоянию до изменения, и действует по принципу «отказ закрывает». Завершённый манифест проходит только тогда, когда шлюз подтверждает соответствие, и никогда — по умолчанию.

Проектный контекст: Высокообъёмная генерация документов.

КлассНазначение
BatchPipelineOrchestratorВыполняет множество манифестов как пакет с ограниченной конкурентностью.
BatchPipelineConfigМаксимальная конкурентность, тайм-аут пакета, переключатель проверки соответствия по завершении.
BatchPipelineResultСводка: результаты по каждому манифесту, число завершённых и неудачных, тайминг.
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,
]);
  • Пакет накладывает верхнюю границу на число манифестов; её превышение вызывает ошибку ограничителя ресурсов, а не молчаливую деградацию.
  • Глобальный тайм-аут, равный нулю, означает отсутствие тайм-аута пакета; задавайте конечное значение в продакшене, чтобы зависший манифест не мог блокировать пакет бесконечно.
  • Передача на проверку соответствия требует распознаваемого PDF в выходе предыдущего шага; если его нет, шаг сообщает о сбое для этого манифеста, а не проходит молча.
  • Этот модуль зависит от выходного конвейера Pro; он добавляет пакетную координацию, а не новую модель шагов.

Пропускная способность растёт с настроенной конкурентностью и стоимостью на каждый манифест. Конкурентность следует задавать консервативно относительно пула воркеров, чтобы колбэки его не насыщали. Ограничение на число манифестов в пакете ограничивает пиковую память.

Пакетный оркестратор обрабатывает любые манифесты и переменные, которые предоставляет вызывающий код; относитесь к входным данным конвейера как к любой другой недоверенной нагрузке PDF. Передача на проверку соответствия — это вспомогательная повторная проверка, а не средство авторизации.

Выходы пакета могут содержать персональные данные. Обработка выполняется внутри процесса и локально; этот оркестратор не делает исходящих сетевых вызовов. Применяйте собственные меры контроля хранения к выходам пакета.

Безопасная телеметрия и очистка журналов

Заголовок раздела «Безопасная телеметрия и очистка журналов»

Результаты пакета сообщают счётчики и тайминг, а не содержимое документа. Очищайте идентификаторы манифестов из журналов, если они кодируют данные арендатора или дела.

Для этого модуля не заявляется соответствия каким-либо стандартам; это слой оркестрации. Необязательная передача на проверку соответствия делегирует работу шлюзу соответствия Enterprise, который несёт собственные ссылки.

Этот модуль не выполняет криптографических операций.

Основные входные данные — переданные вызывающим кодом манифесты и переменные. Меры противодействия: жёсткое ограничение на число манифестов в пакете, ограниченная конкурентность, необязательная повторная проверка производных выходов и отсутствие сетевого ввода-вывода в самом оркестраторе.

  • executeBatch() прогоняет каждый манифест через исполнитель конвейера Pro и возвращает результаты по каждому манифесту с числом завершённых и неудачных и таймингом.
  • Жёсткое ограничение ограничивает число манифестов в пакете; его превышение вызывает ошибку ограничителя ресурсов, а не молчаливую деградацию.
  • Нулевой глобальный тайм-аут означает отсутствие тайм-аута пакета; конечное значение ограничивает зависший манифест.
  • Когда включена, передача на проверку соответствия повторно проверяет каждый производный PDF и сообщает о сбое шага, когда распознаваемый PDF не найден на предыдущем шаге, а не проходит молча.

Эта страница документирует только внешне наблюдаемое поведение и поддерживаемую публичную поверхность API. Внутренние пути пространств имён, вспомогательные классы, таблицы механизмов, имена файлов runbook и префиксы заявок находятся вне области рассмотрения.

У NextPDF Core нет модели выходного конвейера. Развёртывание только с Core компонует свои шаги напрямую против API Core; нет ни манифеста, ни пакетной координации, ни передачи на проверку соответствия.

В развёртывании только с Pro поддерживаемая поверхность — это выходной конвейер Pro для одного манифеста (pro.output.pipeline): PipelineExecutor из Pro прогоняет один манифест за раз. Pro не предоставляет пакетного оркестратора, ограничителя пакета по конкурентности, тайм-аута для каждого пакета и передачи на проверку соответствия Enterprise; конфигурация, запрашивающая пакетную оркестрацию или передачу на проверку соответствия в развёртывании только с Pro, не имеет компонента Enterprise, который бы её удовлетворил. См. Обзор Pro для поверхности конвейера Pro.

Пакетная координация, границы ограничителя ресурсов и подключение передачи на проверку соответствия описаны только на уровне поведения. Внутренний протокол отправки в sidecar, внутренняя семантика обратного давления и внутреннее подключение шлюза соответствия находятся вне публичной поверхности и здесь не воспроизводятся.

В продакшене параллельная отправка воркерам и обратное давление обрабатываются отдельным sidecar-процессом выполнения; описанный здесь оркестратор на PHP обеспечивает пакетную координацию и логику передачи на проверку соответствия и вызывается воркером заданий, а не напрямую обработчиками запросов. Размер пула воркеров, подготовка sidecar и ограничения конкурентности относительно пула воркеров PHP — это обязанность оператора. Передача на проверку соответствия — это вспомогательная повторная проверка, а не средство авторизации.

Необязательная передача на проверку соответствия повторно прогоняет проход проверки над производными документами. Она сообщает о замечаниях; она не сертифицирует документ, не гарантирует нормативную достаточность и не является юридической консультацией. Оценить, отвечает ли вывод вашим обязательствам, — ваша обязанность.