İçeriğe geç

İş Akışı Şablonları

İş akışı şablonları, bir iş akışının adım yapısını bir kez tanımlamanıza ve adını kullanarak birden çok kez çalıştırmanıza olanak tanır. Aynı çok adımlı sürecin farklı yüklerle çalışması gerektiğinde kullanışlıdır.

Şablon tanımlama

Şablonu oluşturmak için Queuety::define_workflow() kullanın, ardından kaydedin:

PHP
use Queuety\Queuety;
use Queuety\Enums\Priority;

$builder = Queuety::define_workflow( 'onboarding' )
    ->on_queue( 'pipelines' )
    ->with_priority( Priority::Normal )
    ->max_attempts( 5 )
    ->then( CreateAccountHandler::class )
    ->then( SendWelcomeEmailHandler::class )
    ->then( NotifyAdminHandler::class );

Queuety::register_workflow_template( $builder );

Şablonları erken, örneğin bir eklentinin başlatma kancasına kaydedin:

PHP
add_action( 'init', function () {
    $builder = Queuety::define_workflow( 'onboarding' )
        ->then( CreateAccountHandler::class )
        ->then( SendWelcomeEmailHandler::class )
        ->then( NotifyAdminHandler::class );

    Queuety::register_workflow_template( $builder );
} );

Şablon çalıştırma

Kayıtlı bir şablonu adıyla çalıştırmak için Queuety::run_workflow() kullanın:

PHP
$workflow_id = Queuety::run_workflow( 'onboarding', [ 'email' => 'user@example.com' ] );

İkinci bağımsız değişken, oluşturucudaki ->dispatch() gibi başlangıç yükü/durumudur. Döndürülen tam sayı, iş akışı kimliğidir.

Şablon kayıtlı değilse RuntimeException fırlatılır.

Kayıtlı şablonları listeleme

Şablon kayıt defterine erişin:

PHP
$registry = Queuety::workflow_templates();
$template = $registry->get( 'onboarding' ); // WorkflowTemplate or null

Tam örnek

PHP
// Register templates on init.
add_action( 'init', function () {
    // User onboarding pipeline
    $onboarding = Queuety::define_workflow( 'onboarding' )
        ->on_queue( 'users' )
        ->then( CreateAccountHandler::class )
        ->then( SetupDefaultsHandler::class )
        ->then( SendWelcomeEmailHandler::class );
    Queuety::register_workflow_template( $onboarding );

    // Content generation pipeline
    $content = Queuety::define_workflow( 'generate_content' )
        ->on_queue( 'llm' )
        ->max_attempts( 5 )
        ->then( BuildPromptHandler::class )
        ->then( CallLLMHandler::class )
        ->then( ReviewOutputHandler::class )
        ->then( PublishHandler::class );
    Queuety::register_workflow_template( $content );
} );

// Dispatch them anywhere in your application.
$wf1 = Queuety::run_workflow( 'onboarding', [ 'email' => 'alice@example.com' ] );
$wf2 = Queuety::run_workflow( 'generate_content', [ 'topic' => 'WordPress performance' ] );

Şablonlar ve satır içi iş akışları

Satır içi iş akışı Şablon
Tanımlama Çalıştırma sırasında Bir kez, kayıt sırasında
Çalıştırma Queuety::workflow('name')->then(...)->dispatch() Queuety::run_workflow('name', $payload)
Yeniden kullanım Zinciri her seferinde oluşturun Bir kez kaydedin, birçok kez çalıştırın
En uygun kullanım Tek seferlik veya dinamik olarak oluşturulan iş akışları Standart, tekrarlanabilir süreçler