Gelecek Yöntemi Vs. Salesforce'ta sıraya alınabilir Apex
Yayınlanan: 2023-11-20Salesforce geliştirmenin hızlı dünyasında, verimli ve etkili kodlama için en iyi araçları ve yöntemleri anlamak çok önemlidir. Bu makalede iki temel kavram ele alınmaktadır: Gelecek Yöntemi ve Sıraya Alınabilir Apex. Her ikisi de Salesforce'ta eşzamansız işlemleri gerçekleştirmek için kullanılan güçlü tekniklerdir ancak farklı özelliklere ve kullanım senaryolarına sahiptirler.
Gelecek Yöntemi ve Sıraya Alınabilir Apex'in nüanslarını keşfederek işlevlerini, avantajlarını ve her birinin Salesforce projelerinizde ne zaman kullanılacağını karşılaştıracağız. İster deneyimli bir geliştirici olun ister Salesforce'ta yeni olun, bu karşılaştırma değerli bilgiler sunacak ve kodunuzu optimize etmek için bilinçli kararlar vermenize yardımcı olacaktır.
Biz karmaşıklıkları çözerken ve Salesforce'taki Gelecek Yöntemi ve Sıraya Alınabilir Apex'in potansiyelini açığa çıkarırken bizi izlemeye devam edin!
İçindekiler
Neden Gelecek Yöntemi?
İşlemleri daha sonra ayrı bir iş parçacığında çalıştırmak istiyorsanız ve kodu eşzamansız olarak çalıştırmak istiyorsanız, gelecekteki yöntemleri kullanmamız gerekir.
Ne zaman kullanılır?
Bunlar, harici Web hizmetlerine çağrılar veya kendi iş parçacığında çalıştırmak istediğiniz herhangi bir işlem gibi uzun süren işlemler için kullanılır.
Neden Sıraya Alınabilir Apex?
Gelecek gibi, eşzamansız kodu yürütmek için de kullanılır ve bir kuyruğa iş eklemenizi ve gelecekteki yönteme kıyasla eşzamansız kod çalıştırma yöntemini geliştirmenizi sağlar.
Ne zaman kullanılır?
Kapsamlı veritabanı işlemleri veya harici Web hizmeti çağrıları gibi uzun süre çalışan Apex işlemleri için, bunları Kuyruğa Alınabilir arayüzü uygulayarak eşzamansız olarak çalıştırabilirsiniz.
Ayrıca Okuyun: OAuth Kullanarak Salesforce SSO Nasıl Uygulanır?
Gelecek ve Sıraya Alınabilir Apex Arasındaki Farklar:
Gelecek Yöntemi | Sıraya Alınabilir Apex |
---|---|
1. Gelecekte SOnesneler veya nesne türleri üzerinde çalışmak için asla kullanılmayacaktır. 2. Gelecek yöntemini kullanırken, devam eden işleri izleyemiyoruz. 3. Gelecek yöntem, gelecek veya toplu sınıfın içinde çağrılamaz. 4. Gelecekteki yöntem hiçbir zaman sıraya alınmayacak. | 1. Kuyruğa Alınabilir İşler, üye değişkenini SObject'ler veya özel Apex Türleri olarak içerebilir. 2. Sıraya alınabilir işler kullanıldığında, Zamanlanmış işler gibi izleyebileceğimiz AsyncApexJob'u oluşturacaktır. 3. Kuyruklanabilir Apex, gelecekten ve toplu sınıftan çağrılabilir. 4. Queueable Apex'in kullanılması kuyruğa alınabilir işleri zincirleyecektir ve Developer Edition'da bu yalnızca 5 İştir. |
Sıraya Alınabilir Apex
Queueable sınıfı, önceden tanımlanmış Arayüz “Queueable” uygulanarak oluşturulan bir sınıftır. Bu arayüz, asenkron işlerinizi veya iş kodlarınızı gelecekteki yöntemle karşılaştırmalı olarak çalıştırmanın yolunu sağlar. Kuyrukta bulunan işleri izlemenizi sağlayacaktır (bu kuyruk, işlerin eşzamansız olarak çalışabilmesi için Queueable arayüzü tarafından oluşturulmuştur).
Sözdizimi:
genel sınıf <Kuyruğa Alınabilir Sınıfın Adı>, Kuyruğa Alınabilir {'i uygular //Bu, Queueable Arayüzünün içerdiği ve Queueable sınıfında bu yöntemi miras alması gereken tek yöntemdir. genel geçersiz yürütme (QueueableContext bağlamı) { // Çalıştırılması gereken kod } }
Kapsamlı veritabanı işlemleri veya harici Web hizmeti çağrıları gibi yürütülmesi uzun zaman alan herhangi bir Apex işlemini, Queueable arayüzünü uygulayarak ve Apex iş kuyruğuna bir iş ekleyerek bunları eşzamansız olarak çalıştırabilirsiniz.
Eşzamansız apex işiniz arka planda kendi iş parçacığında çalışır ve ana Apex mantığınızın yürütülmesini geciktirmez. Sıraya alınan her iş, sistem kaynakları kullanılabilir hale geldiğinde çalışır. Arayüz yöntemlerini kullanmanın bir yararı, yığın boyutu sınırları gibi bazı düzenleyici limitlerinin senkronize Apex'ten daha yüksek olmasıdır.
Gelecek Apex Yöntemi
Gelecekteki apex, daha sonra sistem kaynakları kullanılabilir olduğunda işlemleri ayrı bir iş parçacığında çalıştırmak için kullanılır. Gelecekteki apex'i kullanmak için herhangi bir sınıf oluşturmamıza gerek yok, asenkron olarak çalışan yöntemleri tanımlamak ve bu açıklamanın altında açıklanan yöntemin gelecekteki bir yöntem olduğunu belirtmek için sadece "@future" ek açıklamasını kullanmamız gerekiyor.
Eşzamanlı işleme kullanıldığında, tüm yöntem çağrıları Apex kodunu yürüten aynı iş parçacığından yapılır ve işlem tamamlanana kadar hiçbir ek işlem gerçekleşemez. Kendi iş parçacığında eşzamansız olarak çalıştırmak istediğiniz herhangi bir işlem için gelecekteki yöntemleri kullanabilirsiniz. Bu, kullanıcının diğer işlemleri yapmasını engellememe ve süreç için daha yüksek düzenleyici ve yürütme limitleri sağlama gibi faydalar sağlar.
Sözdizimi:
genel sınıf <SınıfAdı> { //Aşağıda verilen yöntemin gelecekteki yöntem olduğunu tanımlayan gelecek açıklaması bulunmaktadır. @gelecek public static void <FutureMethodName>(List<Id> RecordIds) { List<Contact> hesapları = [Kimliğin IN :recordIds olduğu Kişiden Kimlik, Ad, Soyadı seçin]; // harika şeyler yapmak için kişi kayıtlarını işliyoruz } }
Ayrıca Okuyun: Pipedrive ve Salesforce Entegrasyonu Nasıl Bağlanır?
Gelecekteki yöntemler genellikle aşağıdakiler için kullanılır:
Harici Web servislerine çağrılar. Bir tetikleyiciden veya bir DML işlemi gerçekleştirdikten sonra belirtme çizgileri yapıyorsanız, gelecek veya kuyruğa alınabilir bir yöntem kullanmanız gerekir. Bir tetikleyicideki belirtme çizgisi, belirtme çizgisinin ömrü boyunca veritabanı bağlantısını açık tutacaktır.
Kaynak yoğun hesaplama veya kayıtların işlenmesi gibi, zaman izin verdiğinde kendi iş parçacıklarında çalıştırmak istediğiniz işlemler
Not: Nesnelerin Nedeni, gelecekteki yönteme argüman olarak iletilemez çünkü nesne, yöntemi çağırdığınız zaman ile gerçekte çalıştırıldığı zaman arasında değişebilir. Gelecekteki yöntemler, sistem kaynakları kullanılabilir hale geldiğinde çalıştırılır. Gelecekteki bir yöntem çalıştırıldığında eski nesne değerine sahip olabilir ve bu da her türlü kötü şeyin olmasına neden olabilir.
Hatırlanacak şeyler
- Gelecekteki yöntem statik olmalıdır
- Dönüş türü geçersiz olmalıdır
- Belirtilen parametreler temel veri türleri, temel veri türleri dizileri veya temel veri türleri koleksiyonları olmalıdır
- Gelecekteki yöntemleri, diğer yöntemleri çağırdığınız gibi çağırabilirsiniz. Ancak gelecekteki bir yöntem, gelecekteki başka bir yöntemi çağıramaz
- Apex çağrısı başına en fazla 50 yöntem çağrısı
- startTest, stopTest bloğunda çağrılan @future veya executiveBatch gibi eşzamansız çağrılar, sıraya alınmış işlerin sayısına ilişkin limitlerinize dahil edilmez
Gelecek Yöntem ve Sıraya Alınabilir Sınıf Örneği
Burada Kanada doları cinsinden 4 para biriminin değerini alıyorum. GBP, USD, AUD, CAD için. Ve değeri özel meta veri para birimine kaydetme. Burada HTTPREQUEST için Future yöntemini kullandım. Ve toplu işlemi çalıştırırken aynı anda birden fazla kaydı güncellediği için, aynı anda birden fazla kaydı güncelleyen Queueable Apex'i kullandım.
Özel Meta Verilerin Özel Güncellenmesi
Sıraya Alınabilir Sınıf
Queueable sınıfında Future yöntemini çağırmak ve listeyi güncellemeye göndermek
Emizentech, özgün ve deneyimli bir satış gücü danışmanlık şirketidir ve uzman satış gücü geliştiricilerimiz, bir sonraki satış gücü projeniz için size profesyonel yardım sağlayabilir.