Üçüncü taraf AI veya LLM API’lerini uygulamanıza entegre ederken, bunları standart web controller’larınız içinde senkron olarak çalıştırmak mimari bir tuzaktır. Eğer dış API 10+ saniye yanıt verirse, sunucunuzun işçi havuzu hızlıca bellek sınırlamalarını tüketebilir.
Bunu çözmek için, dış yürütme süreçlerini ayrık, asenkron arka plan işlemlerine kaydırmalısınız. İşte dış API gecikmesini güvenli bir şekilde yönetmek için tasarlanmış, üretim için hazır bir Laravel Job kurulumu:
namespace App\Jobs;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue;
class ProcessAIPipeline implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable;
// Retry settings to survive external API timeouts safely
public $tries = 3;
public $backoff = [15, 45, 90];
protected array $data;
public function __construct(array $data)
{
$this->data = $data;
}
public function handle(AIEngineService $ai): void
{
// Off-thread processing protects your application core
$response = $ai->generate($this->data['prompt']);
}
}
Temel Mimari Avantajlar:
Hızlı İstemci Yanıtı: Controller’ınız hızlı doğrulamayı gerçekleştirir, işi dağıtır ve istemci uygulamasına anında HTTP 202 Accepted durumu döner.
Üstel Geri Dönüş Koruması: AI sağlayıcınız bir oran sınırına ulaştığında veya beklenmedik bir kesinti yaşandığında, işçi işlemleri (15s, 45s, 90s) hatasız bir şekilde baştan dener, 500 hataları yerine.
Ayrık Genişletilebilirlik: Bu mantığı HTTP iş parçacığından kaydırarak, bu uygulamayı tekrar kullanılabilir, açık kaynaklı sağlayıcı araçlarına kolayca sarabilirsiniz.
Ayrık boru hatları kurarak, altyapınızı bağlantı zaman aşımına karşı korur ve temel ekosisteminizin son derece dayanıklı olmasını sağlarsınız.
Yazılım Mühendisi ve Veri Bilimciyim (Yüksek Lisans) ve 9+ yıllık deneyimimle yüksek eşzamanlılıkta Laravel sistemleri ve açık kaynaklı yardımcı tasarımlara uzmanlık alanım.
Kaynak: Orijinal Makale


