getHost(), $dsn->getPort()); $adapter = new Queue\Adapter\Swoole($connection, 2, 'syncIn'); $server = new Queue\Server($adapter); $server->job() ->inject('message') ->inject('cache') ->action(function (Message $message, Cache $cache) { $time = DateTime::now(); $payload = $message->getPayload()['value']; $cache->setDisableListeners(true); foreach ($payload['keys'] ?? [] as $key) { Console::info("[{$time}] Purging {$key}"); $cache->purge($key); } $cache->setDisableListeners(false); }); $server ->error() ->inject('error') ->inject('logError') ->action(function ($error, $logError) { Console::error($error->getMessage() . ' ' . $error->getFile() . ' ' . $error->getLine()); call_user_func($logError, $error, 'sync-in-worker'); }); $server ->workerStart() ->action(function () { Console::success("In [" . App::getEnv('_APP_REGION', 'nyc1') . "] edge cache purging worker Started"); }); $server->start();