Shopify Flow iş akışlarınızı optimize etme
Bir iş akışı oluşturduğunuzda, bu iş akışının mümkün olduğunca verimli çalışmasını istersiniz. Bu belgede, iş akışlarınızın kısıtlanmasına veya API limitlerini tüketmesine neden olabilecek senaryolar ile bu sorunları çözmeye veya geçici çözümler bulmaya yönelik ipuçları özetlenmektedir.
Bu sayfada
Sık karşılaşılan performans sorunları
Bu bölümde, iş akışlarınızda performans sorunlarına neden olabilecek sık karşılaşılan senaryolar özetlenmektedir. Aynı anda birden fazla senaryonun yaşanması mümkündür. Bu durum, performans sorunlarıyla karşılaşma olasılığınızı artırır. Düzenleyici yapılandırması veya hız sınırlaması ile ilgili hatalar için sorun giderme kılavuzunu kullanın.
Yüksek hacimli tetikleyiciler
Yüksek hacimli tetikleyiciler, temelindeki olayın sık yaşandığı tetikleyicilerdir. Örneğin, Ürün varyasyonu envanter adedi değişti tetikleyicisi, bir mağazadaki her envanter değişikliği için çalışır. Bir tetikleyicinin hacmi, iş akışınızdaki herhangi bir sorun için çarpan görevi görür. Örneğin, bir iş akışı 100 ürün alıyorsa ve dakikada 1.000 kez çalışıyorsa dakikada 100.000 ürün alıyor olacaktır. Bu durum, performans sorunlarına neden olabilir.
Çözüm: Daha az veri kullanarak iş akışlarınızı optimize edin veya iş akışınızı bölümlere ayırmak için bekleme adımlarını kullanın.
Aynı tetikleyiciyi kullanan birden çok iş akışı
Flow'da aynı tetikleyiciyi kullanarak birden fazla iş akışı oluşturabilirsiniz. Bu iş akışları, olay gerçekleştiğinde birbirine paralel olarak çalışır. Aynı tetikleyiciyi kullanarak çok fazla iş akışı çalıştırmanız aşağıdaki nedenlerden dolayı sorun yaratabilir:
- İş akışları birbiriyle çakışabilir.
- İş akışları aynı anda veri almaya ve API'leri çağırmaya çalışır. Mağazanızın aynı anda işleyebileceği istek sayısı, Shopify API limitleri ile sınırlıdır.
Çözüm: Aynı tetikleyiciyi kullanan iş akışlarını tek bir iş akışında birleştirin. Bu, ayrıca her birinin ne zaman yürütüleceğini kontrol etmenize olanak tanıyarak birbirleriyle çakışmalarını önler. İş akışlarını birleştirmek, özellikle iş akışları çok fazla veri almıyorsa veya aldıkları veriler aynıysa kullanışlıdır. İş akışları çok sayıda farklı veri alıyorsa bunları ayrı tutmanın daha iyi performans sağladığını görebilirsiniz.
Listeleri veya yanlış verileri kullanma
Bir iş akışı oluştururken ürünler veya siparişler gibi bir nesne listesi kullanabilirsiniz. Bir nesne listesi kullanırsanız Flow, listedeki tüm nesneleri alır. Liste çok fazla veri içerdiğinde bu durum sorun yaratabilir.
Sık karşılaşılan bir diğer sorun da yanlışlıkla yanlış verilerin seçilmesidir. Örneğin, bir siparişteki ürün verilerini kontrol etmek için order / line items / product / tags yerine order / publication / products / tags seçeneğini belirlemiş olabilirsiniz. Amaç siparişteki ürünleri kontrol etmek olduğundan, bir yayına ait tüm ürünleri alan ilk sonuç genellikle yanlıştır. Bu kadar büyük bir liste seçmek performans sorunlarına neden olabilir ve yanlış listeyi seçmek, otomasyonunuzun yanlış işlem yapmasına yol açabilir.
Çözüm: İhtiyacınız olan verileri dikkatle seçin ve gerekmediğinde liste kullanmaktan kaçının. Beklediğiniz gibi çalıştıklarından emin olmak için iş akışlarınızı test edin.
Meta alanlar
Tekil meta alan veya meta nesne verilerini almak performans sorunlarına neden olmamalıdır. Ancak sık karşılaşılan bir sorun, metafields listesini seçmek ve bir kaynaktaki tüm meta alanlar üzerinde döngü oluşturmaktır. Bir value (değer) alanı, örneğin HTML nesneleri kullanıldığında olduğu gibi çok fazla veri içeriyorsa bu durum, çok fazla verinin işlenmesine ve potansiyel olarak performans sorunlarına yol açabilir.
Çözüm: metafields yerine metafield nesnesini kullanın.
"Veri al" eylemlerinin aşırı kullanımı
Sipariş verilerini al gibi bir Veri al eylemi kullanan iş akışları, Veri al eylemlerinden iş akışı başına en fazla 100 nesne döndürecek şekilde tasarlanmıştır. 100'den fazla nesne kullanmak performans sorunlarına neden olabilir.
Çözüm: Sorgunuzun 100'den fazla sonuç döndürmesi gerekmeyecek şekilde iş akışını daha sık çalıştırın. Tekrarlanan sorgular yapmak yerine aynı Veri al eylemini yeniden kullanın.
"Veri al" eylemlerinde sorgu filtresi olmaması
Veri al eylemleri, Shopify API'sini çağırır. Herhangi bir sorgu mevcut değilse API, tüm kaynakları veya hiçbirini döndürür. Bu durum, performans sorunlarına neden olabileceği gibi, döndürülen verileri daha sonra iş akışında kullandığınızda mağazanızda yanlış eylemlerin gerçekleştirilmesine de yol açabilir.
Çözüm: Veri al eylemlerinize her zaman sorgu filtreleri ekleyin.
"Veri al" eylemlerinde yanlış sorgu filtreleri
Veri al sorguları; sınırlı sayıda sorgu filtresini, belirli bir söz dizimini ve filtrelerde kullanılabilecek belirli bir değer kümesini destekler. Yanlış filtre, filtre değeri veya söz dizimi girmek, sorgunun tamamının yoksayılmasına neden olabilir. Bu da sorgu filtresi bulunmadığında ortaya çıkan sorunlara benzer sorunlara yol açabilir.
Çözüm: Kullanılabilir sorgu filtrelerinin listesini bulmak için Flow'da eylem tarafından sağlanan belgeleri kullanın. Beklenen verileri döndürdüklerinden emin olmak için sorgu filtrelerinizi her zaman test edin. Döndürülen verileri gözden geçirmek için Flow'da "Günlük Çıktısı" eylemini kullanabilir veya Postman gibi bir API istemcisi aracılığıyla ya da GraphiQL uygulaması üzerinden doğrudan Shopify Admin API'sini çağırabilirsiniz.
Sık karşılaşılan performans sorunları için ek çözümler
Veri almayı geciktirmek için Bekleme adımlarını kullanma
Bekleme adımları, bir iş akışını belirli bir süre boyunca duraklatmanıza olanak tanır ancak bekleme adımları, iş akışlarınızı optimize etmek için de kullanılabilir. Her bekleme adımı, iş akışınızın yürütülmesini etkili bir şekilde ayrı aşamalara böler. İş akışı çalıştığında, ilk bekleme adımına kadar gereken verileri otomatik olarak alır (ve iş akışının geri kalanı için bekleme adımından sonra verileri tekrar alır).
Bir iş akışı yüksek hacimli bir tetikleyici kullanıyorsa ve çok fazla veri alıyorsa ancak yalnızca ara sıra eylemde bulunuyorsa herhangi bir karmaşık veriyi veya mantığı bir koşul ve bekleme adımı çiftinden sonraya yerleştirebilirsiniz. Örneğin:
- Tetikleyici: Ürün varyasyonu envanter adedi değişti.
- Koşul: Ürünün bir koleksiyonda olup olmadığını kontrol etme.
- Doğruysa, Eylem: 2 saniye bekleme.
- Eylem: Müşteriye e-posta gönderme (çok sayıda veriyle).
Bu örnekte, 4. adım için gereken veriler yalnızca Bekleme adımı tamamlandıktan sonra sorgulanır. Koşul genellikle yanlışsa bu, iş akışının daha hızlı ve daha verimli çalışacağı anlamına gelir.
Nelerin optimize edilmemesi gerektiği
Aynı verileri birden çok eylemde kullanma
Aynı alanı birden çok adımda kullandığınızda Flow, bu alanların kullanımını analiz eder ve bu verileri yalnızca bir kez alır. Bu, performanstan endişe etmeden verileri istediğiniz kadar kullanabileceğiniz anlamına gelir.