ERP entegrasyonu yapan sitelerde cron job, kuyruk, hata yönetimi ve sunucu kaynakları nasıl planlanmalı? Güvenli ve sürdürülebilir görev akışı için pratik öneriler.
ERP entegrasyonu yapan bir sitede zamanlanmış görevler; stok, sipariş, cari hesap, fatura ve kargo verilerinin doğru zamanda, doğru sırayla ve güvenli biçimde aktarılmasını sağlar. Bu görevler plansız çalıştırıldığında aynı kayıtlar tekrar işlenebilir, API limitleri aşılabilir, sipariş akışı gecikebilir veya sunucu kaynakları gereksiz yere tüketilebilir. Bu nedenle cron job, kuyruk ve arka plan işlemleri yalnızca teknik bir ayrıntı değil, operasyonun sürekliliğini etkileyen kritik bir planlama konusudur.
İlk adım, hangi verinin ne sıklıkla senkronize edileceğini belirlemektir. Her entegrasyon aynı zaman aralığına ihtiyaç duymaz. Sipariş aktarımı dakikalık çalışabilirken, ürün açıklamaları veya kategori eşleştirmeleri günde birkaç kez güncellenebilir.
Pratik bir sınıflandırma yapılabilir:
Bu ayrım yapılmadan tüm görevleri aynı dakikaya yığmak, özellikle kampanya dönemlerinde ciddi performans sorunlarına yol açabilir.
ERP entegrasyonlarında en sık yapılan hata, her işlemi kısa aralıklarla çalıştırmanın daha iyi olacağını düşünmektir. Oysa gereğinden sık çalışan görevler hem ERP API tarafını hem de web sitesinin çalıştığı hosting ortamını zorlayabilir.
Örnek bir planlama şu şekilde olabilir:
Bu aralıklar sabit bir kural değildir. Sipariş hacmi, ERP’nin yanıt süresi, API limitleri ve kampanya dönemlerindeki trafik dikkate alınarak yeniden düzenlenmelidir.
Bir cron görevi tamamlanmadan aynı görevin tekrar başlaması, çift sipariş aktarımı veya kilitlenen tablolar gibi sorunlara neden olabilir. Bu nedenle her görev için çalışma kilidi kullanılmalı, görev başladıktan sonra tamamlanana kadar ikinci kez tetiklenmesi engellenmelidir.
Uygulama seviyesinde her görevin başlangıç ve bitiş zamanı kayıt altına alınmalıdır. Eğer önceki işlem hâlâ devam ediyorsa yeni işlem bekletilmeli veya atlanmalıdır. Bu yaklaşım özellikle büyük ürün kataloglarında ve yoğun sipariş alan e-ticaret sitelerinde önemlidir.
Ayrıca görevler birbirine bağımlıysa sıra net olmalıdır. Örneğin stok güncellemesi ile sipariş aktarımı aynı anda çalışıyorsa, stok rezervasyon mantığı bozulabilir. Bu tür durumlarda önce siparişler işlenmeli, ardından stok güncellemesi yapılmalıdır.
ERP entegrasyonu yalnızca yazılım tarafında değil, sunucu kaynakları açısından da planlanmalıdır. CPU kullanımı, bellek tüketimi, veritabanı sorgu süresi ve PHP maksimum çalışma süresi düzenli takip edilmelidir.
Paylaşımlı altyapılarda uzun süren cron görevleri zaman aşımına uğrayabilir. Bu durumda görevleri küçük parçalara bölmek daha sağlıklı olur. Örneğin 20.000 ürünün tamamını tek işlemde güncellemek yerine her çalışmada 500 ürün işlemek, hata yönetimini kolaylaştırır ve sistem yükünü dengeler.
Yoğun veri trafiği olan projelerde standart hosting paketi yerine kaynakları ölçeklenebilir bir yapı tercih edilmelidir. Böylece entegrasyon yükü arttığında web sitesinin ön yüz performansı olumsuz etkilenmez.
ERP veya web sitesi tarafında geçici kesintiler yaşanabilir. Bu nedenle her başarısız işlem hemen veri kaybı anlamına gelmemelidir. Görevler hata aldığında ilgili kayıt kuyruğa alınmalı, belirli aralıklarla tekrar denenmeli ve tekrar sayısı sınırlandırılmalıdır.
Uygulanabilir bir model şu şekilde olabilir:
Bu yaklaşım, geçici API sorunlarında operasyonu durdurmadan ilerlemeyi sağlar. Ancak sürekli başarısız olan kayıtların sessizce beklemesi engellenir.
Zamanlanmış görevlerde yalnızca hata kaydı tutmak yeterli değildir. Hangi görevin ne zaman başladığı, kaç kayıt işlediği, kaçının başarılı olduğu, kaçının hata aldığı ve toplam çalışma süresi net biçimde izlenmelidir.
Loglar gereğinden uzun süre tutulursa veritabanı şişebilir. Bu nedenle log saklama politikası belirlenmelidir. Kritik entegrasyon kayıtları daha uzun saklanabilirken, rutin çalışma logları belirli süre sonra arşivlenebilir veya temizlenebilir.
WordPress tabanlı projelerde WP-Cron, ziyaretçi trafiğine bağlı çalıştığı için ERP entegrasyonlarında her zaman güvenilir değildir. Trafik düşükse görev gecikebilir, trafik yüksekse tetikleme kontrolsüz hale gelebilir. Daha kararlı bir yapı için kontrol paneli veya SSH üzerinden gerçek cron tanımlamak daha doğru olur.
Gerçek cron kullanıldığında görevler belirlenen dakikada çalışır ve entegrasyon takibi daha öngörülebilir hale gelir. Özellikle sipariş aktarımı gibi kritik süreçlerde bu fark, müşteri memnuniyetini doğrudan etkiler.
Planlama tamamlandıktan sonra yalnızca başarılı senaryo test edilmemelidir. ERP geç yanıt verdiğinde, API limiti dolduğunda, aynı sipariş iki kez kuyruğa girdiğinde veya stok verisi eksik geldiğinde sistemin nasıl davranacağı kontrol edilmelidir.
Test sürecinde küçük veri setleriyle başlamak, ardından gerçek hacme yakın yük testleri yapmak daha güvenlidir. Kampanya, sezon başlangıcı veya toplu fiyat güncellemesi gibi yüksek yük oluşturabilecek dönemler için ayrı çalışma aralıkları belirlenebilir.
ERP entegrasyonu için cron job planlama yapılırken temel hedef, veriyi mümkün olan en sık değil, operasyon için en doğru zamanda ve kontrollü biçimde işlemektir. Görev öncelikleri, hata tekrarları, log yönetimi ve altyapı kapasitesi birlikte ele alındığında entegrasyon daha stabil çalışır; ekipler de sorunları büyümeden fark edip müdahale edebilir.