Files
temporalio-test/worker.php
2026-05-09 01:18:51 +02:00

65 lines
2.3 KiB
PHP

<?php
declare(strict_types=1);
use Temporal\WorkerFactory;
ini_set('display_errors', 'stderr');
require __DIR__ . '/vendor/autoload.php';
// Bootstrap Laravel for Eloquent, config, etc.
$app = require_once __DIR__ . '/bootstrap/app.php';
$app->make(\Illuminate\Contracts\Console\Kernel::class)->bootstrap();
$factory = WorkerFactory::create();
$worker = $factory->newWorker(taskQueue: env('TEMPORAL_TASK_QUEUE', 'laravel-tasks'));
// Register Workflows
$worker->registerWorkflowTypes(
\App\Temporal\ProductImport\ProductImportWorkflow::class,
\App\Temporal\ProductImport\BatchImportWorkflow::class,
\App\Temporal\OrderFulfillment\OrderFulfillmentWorkflow::class,
\App\Temporal\UserMigration\UserMigrationWorkflow::class,
\App\Temporal\ExternalApiSync\ExternalApiSyncWorkflow::class,
\App\Temporal\WebhookDelivery\WebhookDeliveryWorkflow::class,
\App\Temporal\DataEnrichment\DataEnrichmentWorkflow::class,
\App\Temporal\EloquentQuery\EloquentQueryWorkflow::class,
\App\Temporal\SystemMonitor\SystemMonitorWorkflow::class,
);
// Register Activities (using Laravel container for dependency injection)
$worker->registerActivity(
\App\Temporal\ProductImport\ProductImportActivity::class,
fn(\ReflectionClass $class) => app($class->getName())
);
$worker->registerActivity(
\App\Temporal\OrderFulfillment\OrderActivity::class,
fn(\ReflectionClass $class) => app($class->getName())
);
$worker->registerActivity(
\App\Temporal\UserMigration\UserMigrationActivity::class,
fn(\ReflectionClass $class) => app($class->getName())
);
$worker->registerActivity(
\App\Temporal\ExternalApiSync\ExternalApiSyncActivity::class,
fn(\ReflectionClass $class) => app($class->getName())
);
$worker->registerActivity(
\App\Temporal\WebhookDelivery\WebhookDeliveryActivity::class,
fn(\ReflectionClass $class) => app($class->getName())
);
$worker->registerActivity(
\App\Temporal\DataEnrichment\DataEnrichmentActivity::class,
fn(\ReflectionClass $class) => app($class->getName())
);
$worker->registerActivity(
\App\Temporal\EloquentQuery\EloquentQueryActivity::class,
fn(\ReflectionClass $class) => app($class->getName())
);
$worker->registerActivity(
\App\Temporal\SystemMonitor\SystemMonitorActivity::class,
fn(\ReflectionClass $class) => app($class->getName())
);
$factory->run();