İçeriğe geç
getnextpdf.com

Pro sürüm

Çıktı ardışık düzeni

Output Pipeline, PDF adımlarından oluşan bildirimsel bir manifestoyu bağımlılık sırasında, adım başına yeniden denemeler ve hatada durma seçeneğiyle çalıştırır. Bazı adım türleri ek bir Enterprise Pack yeteneği gerektirir.

Bu yetenek NextPDF Pro (nextpdf/pro) ile birlikte gelir ve bir Pro katmanı lisans zarfıyla etkinleşir. Bu yetkilendirmeye sahip olmayan bir dağıtım, yeteneğin sınıflarını yüklemez. Sürümleri karşılaştırın ve lisans edinin.

İşlem hattı yürütücüsünün kendisi Pro sürümünün bir parçasıdır. Üç adım türü ayrıca adlandırılmış bir Enterprise Pack yeteneği gerektirir: karartma adımı bir Privacy Pack yeteneği, çıkarma ve OCR yer paylaşımı adımları ise Intelligence Pack yetenekleri gerektirir. Lisanssız kapılı bir adım, tüm çalıştırmayı iptal etmek yerine yürütme sırasında kapalı biçimde başarısız olur — başarısız bir adım sonucu üretir ve çözümleyicisi hiçbir zaman çağrılmaz.

Terminal window
composer require nextpdf/pro:^3

Kod, NextPDF\Pro\OutputPipeline ad alanı altında yer alır.

PipelineExecutor, bir PipelineManifest alır, adımları topolojik sıraya dizer ve her adımı StepResolverRegistry’de kayıtlı bir çözümleyiciye gönderir. Adım çıktıları, sonraki adımlar için bir PipelineContext’te depolanır. Yürütücü, genel bir zaman aşımı uygular, adım başına yeniden denemeleri destekler ve adı belirtilen bir adımdan devam edebilir. Bir istek işleyiciden doğrudan değil, eşzamansız bir iş çalışanı içinde çalışacak şekilde tasarlanmıştır.

Yerleşik adım türleri generate, merge, split, inspect, compress, sign ve convert’i içerir. Karartma, çıkarma ve OCR yer paylaşımı adım türleri yetenek lisanslıdır ve Enterprise Pack yeteneklerine eşlenir.

Yürütücü yalnızca düzenlemeden ibarettir. Adımları sıralar, lisans kapısını uygular ve her birini kayıtlı bir çözümleyiciye gönderir, ancak kendisi hiçbir PDF işi yapmaz. Bu ayrım, tek bir manifestonun ya bu sıralı PHP yolundan ya da adımları paralel olarak gönderen bant dışı bir çalışan aracılığıyla, çağıran kodda hiçbir değişiklik olmadan çalışmasına olanak tanır. Tasarım, bir istek işleyici yerine eşzamansız bir iş çalışanını hedefler, çünkü çok adımlı bir işlem hattı çoğu zaman bir istek bütçesinden daha uzun yaşar ve bir kuyruk, çalışan ekleyerek verimi ölçekler. Genel zaman aşımı aynı nedenle adımlar arasında denetlenir: bütün bir adım, bir çözümleyiciye teslim edilen iş birimidir ve düzenleyici o çözümleyicinin çalışmasının dışında kalır. Arızalar, fırlatılan istisnalar yerine adım başına StepResult değerleri olarak yüzeye çıkar, böylece başarısız bir adım, çalışanın raporladığı toplam PipelineResult’ı asla çökertmez.

Tasarım arka planı: Yüksek hacimli belge üretimi.

  • execute($manifest, $variables), genel durum, adım başına sonuçlar, süre ve tamamlanan ile başarısız olan adımların sayılarını içeren bir sonuç döndürür.
  • Adımlar topolojik sırada çalışır; bir adım türü için eksik bir çözümleyici, açık bir mesajla başarısız bir adım üretir.
  • PipelineOptions::$stopOnError, ilk arızada yürütmeyi durdurur; aksi takdirde yürütme devam eder ve nihai durum, varsa herhangi bir arızayı yansıtır.
  • Genel zaman aşımı, ayarlandığında, sonraki adım başlamadan önce aşılırsa işlem hattını başarısız kılar.
  • Adım başına yeniden denemeler, yapılandırılan en yüksek değerle sınırlanır; yalnızca terminal olmayan arızalar yeniden denenir.
  • Adımdan devam etme, adı belirtilen adıma ulaşılana kadar önceki adımları atlar.
  • Yetenek kapılı adım türleri, gereken Pack yeteneği yokken yürütme sırasında bir lisans hata koduyla kapalı biçimde başarısız olur; çözümleyici hiçbir zaman çağrılmaz.

Aşağıdaki, belgelenmiş genel API’yi yansıtır. Depo, bu modül için çalıştırılabilir bir örnek sunmaz.

use NextPDF\Pro\OutputPipeline\PipelineExecutor;
$result = (new PipelineExecutor($stepResolverRegistry))->execute($manifest);
use NextPDF\Pro\OutputPipeline\PipelineExecutor;
$executor = new PipelineExecutor($stepResolverRegistry);
// Invoke from an async job worker, not a request handler.
$result = $executor->execute($manifest, ['customerName' => 'Acme']);
if ($result->status !== \NextPDF\Pro\OutputPipeline\PipelineStatus::Completed) {
foreach ($result->stepResults as $stepResult) {
// Inspect per-step error detail.
}
}
  • İşlem hattı, bir iş sistemi aracılığıyla eşzamansız çalışacak şekilde tasarlanmıştır. Onu satır içi çalıştırmak, çağıranı işlem hattının tüm süresi boyunca engeller.
  • Kayıtlı çözümleyicisi olmayan bir adım türü, tüm işlem hattını iptal etmek yerine o adımı başarısız kılar (hatada durma ayarlanmadıkça).
  • Genel zaman aşımı, adım ortasında değil, adımlar arasında denetlenir; uzun süren bir adım, denetim tetiklenmeden önce bütçeyi aşabilir.

Toplam süre, adım sürelerinin toplamı artı yeniden deneme yüküdür. Genel zaman aşımı, en kötü durumdaki gerçek zamanı sınırlar. Yayımlanmış bir verim değeri yoktur; işlem hattı maliyetine, dahil ettiğiniz adımlar egemendir. Temsili manifestolarla ölçün.

Yürütücü, girdi belgelerini ve değişkenleri adım çözümleyicilerine iletir; bunları güvenilmez olarak değerlendirin ve her çözümleyici içinde doğrulayın. Yetenek kapılı adımlar, lisanssız olduğunda kapalı biçimde başarısız olur. Yürütücü hiçbir belge içeriğini günlüğe kaydetmez.

Yürütücü, kendisi hiçbir biçim uygunluğu çalışması yapmaz; uygunluk, tek tek adım çözümleyicilerine (generate, merge, split, sign, convert) bağlıdır. RAG külliyatı yazma sırasında kullanılamadığından, bu sayfa hiçbir harici kural tanımlayıcısı öne sürmez.

Enterprise, kapılı adım türlerini (karartma, çıkarma, OCR yer paylaşımı) davranış düzeyinde açan Pack yeteneklerini ekler. Bu Pack’ler olmadan, işlem hattı yine de her kapılı olmayan adımı çalıştırır. Pack iç ayrıntıları burada kapsam dışıdır.

Pro olmadan, PDF işlemlerini NextPDF Core API’leriyle buyuru biçiminde düzenleyin; bildirimsel manifesto, bağımlılık sıralaması ve yeniden denemeler Pro eklentileridir. Bkz..

Bu sayfa, yalnızca dışarıdan gözlemlenebilen davranışı ve desteklenen genel API yüzeyini belgeler. İç ad alanı yolları, yardımcı sınıflar, mekanizma tabloları, runbook dosya adları ve bilet önekleri kapsam dışıdır.