İş akışları: kaydederken mi, zamanlayıcıyla mı?
- Kayıt anındaki akışlar kaydeden istek içinde çalışır; ilişkiler ve sonraki nesneler çoğunlukla henüz oluşmamıştır.
- Zamanlayıcı akışları arayüzü işten ayırır; ancak cron, izleme ve idempotans gerektirir.
- Yanlış modelleme soyut teori hatası değil, boş e-posta, takılan istek veya çift eylem olarak görünür.
SuiteCRM iş akışları, tarihsel adıyla Advanced Open Workflow, modül düzeyinde koşullu eylemlere izin verir. Pratikte motordan çok zamanlama hakkındaki yanlış varsayımlarnedeniyle başarısız olur: verilerin tam ve ilişkilerin kurulmuş olduğu an önemlidir. Bu makale karar yardımı, yaşam döngüsü karşılaştırması ve test listesiyle mimari kararı somutlaştırır.
Durumunuza hangi iş akışı türü uygun?
İki soru, bir öneri. Test ortamının yerini almaz ama en sık yanlış kararı süzer.
Aynı kayıtta, bağlı ilişki gerektirmeyen ve belirgin gecikme yaratmayan hesaplama veya durum değişiklikleri için uygun.
1. İki yaşam döngüsü: senkron ve asenkron
Soyut tanımlar yerine kullanıcı ve sistemin gerçekten yaşadığı akışa bakalım:
Kayıt anı yaşam döngüsü
- 1 Kullanıcı “Kaydet”e tıklar
- 2 HTTP isteği çalışır, tarayıcı bekler
- 3 Doğrulama ve kayıt öncesi hook'lar
- 4 Veri tabanına yazma (INSERT/UPDATE)
- 5 Kayıt anı akışı: olası e-posta, webhook ve ek yazmalar
- 6 Tarayıcıya yanıt
Zamanlayıcı yaşam döngüsü
- 1 Kullanıcı kaydeder, yanıt hızlı gelir
- 2 Arayüz yeniden kullanılabilir
- 3 Zamandan ayrışmış: cron/işçi
- 4 Görev güncel veri tabanı durumunu okur; ilişkiler genellikle vardır
- 5 Arayüzü engellemeden toplu eylemler
- 6 Durum/idempotans işareti koy
2. Kısa karar yardımı
| Tasarım sorusu | Daha çok kayıt anında | Daha çok zamanlayıcı |
|---|---|---|
| İlişkili kayıt ancak kayıttan sonra mı oluşuyor? | Uygun değil | Uygun |
| Kullanıcı hemen görünür alan/geri bildirim istiyor mu? | Uygun | Gecikmeli |
| Belirgin gecikmeli harici API mi? | İstek içinde riskli | Daha iyi |
| Büyük hacim / gece çalışmaları mı? | Uygunsuz | Filtrelerle planlayın |
3. Üç mimari tuzak
Alt panel yanılsaması
Ana kayıt ID'si kaydetme bağlamında mevcutken ilişkili kayıtlar daha sonraki işlem adımında veya sonrasında yazılabilir. Teklifte kişi bekleyen kayıt anı akışı, kullanıcı bağlantıyı arayüzde az önce kurmuş olsa da hiçbir şey bulamaz. Önlem: İlişki okunabilir olduğunda zamanlayıcı veya bilinçli ikinci adım.
Özyinelemeli sonsuz döngü
İş akışı alanı değiştirir, yeniden kaydı tetikler, tekrar çalışır; zaman aşımı veya bellek sınırına kadar. Koşul ve yazma hedefi aynı alansa özellikle sinsidir. Önlem: Açık işleme işareti, ikinci çalışmayı etkisiz kılan koşullar ve zincirde gereksiz kayıtlardan kaçınma.
Sınırsız zamanlayıcı çalışması
Dar tarih/durum filtreleri olmayan akış, yıllar sonra her cron çalışmasında devasa eski veriye dokunabilir. Akış hep aynı olsa da sistem aniden yavaş görünür. Önlem: Dar seçim ölçütleri, önceden işlendi durumu, çalışma süresi ve yük izleme.
4. Dağıtıma hazır olma: işaretlenebilir test protokolü
Bu beş kanıt olmadan üretime geçmek, tetikleyici türünden bağımsız körlemesine ilerlemektir.
Test ortamı kontrol listesi
Bu Workflow Engine AgenticUltimate içinde görsel modelleme, simülasyon ve sürümlü onaya dayanır; akışlar görülmeden üretime geçmesin diye. Kayıt anı veya zamanlayıcı seçimi mimari karardır; simülasyon yukarıdaki beş kontrolün hiçbirinin yerini almaz.
Workflow Engine ↗5. Makalenin sınırları
Her SuiteCRM yaması veya özel hook ortamı için garanti yoktur. Öneriler tipik hatalardan türetilen mimari yaklaşımlardır; kendi kurulumunuzdaki test ortamı belirleyicidir.