Salesforce'ta Kuyruğa Alınabilir Apex'e Karşı Gelecek Yöntemi

Yayınlanan: 2020-05-17

Neden Gelecek?

İşlemleri daha sonra ayrı bir iş parçacığında çalıştırmak istiyorsanız ve kodu eşzamansız olarak yürütmek 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üreli işlemler için kullanılır.

Neden Kuyruğa Alınabilir Apex?

Gelecek gibi, asenkron kodu yürütmek için de kullanılır ve bir kuyruğa işler eklemenize ve gelecekteki metoda kıyasla asenkron kod çalıştırma şeklini geliştirmenize olanak tanır.

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, Queueable arabirimini uygulayarak bunları eşzamansız olarak çalıştırabilirsiniz.

Ayrıca Okuyun: OAuth Kullanarak Salesforce TOA Nasıl Uygulanır?

Gelecek ve Kuyruğa Alınabilir Apex arasındaki farklar:

Gelecek Yöntemi Kuyruğa Alınabilir İş
1. Future asla SObject'ler veya nesne türleri üzerinde çalışmaz.

2. Gelecek yöntemini kullanırken, devam eden işleri izleyemiyoruz.

3. Future yöntemi, future veya toplu sınıf içinde çağrılamaz.

4. Gelecekteki yöntem hiçbir zaman kuyruğa alınmayacaktır.

1. Kuyruğa Alınabilir İşler, üye değişkeni SObject'ler veya özel Apex Türleri olarak içerebilir.

2. Kuyruğa alınabilir işleri kullanırken, Zamanlanmış işler gibi izleyebileceğimiz AsyncApexJob yapacak.

3. Kuyruğa Alınabilir Apex, gelecekten ve toplu sınıftan çağrılabilir.

4. Kuyruğa Alınabilir Apex'i kullanmak, kuyruğa alınabilir işleri zincirler ve Developer Edition'da sadece 5 İş'tir.

Kuyruğa Alınabilir Apeks

Queueable sınıfı, önceden tanımlanmış “Queueable” Arabirimi uygulanarak oluşturulan bir sınıftır. Bu arayüz, asenkron işlerinizi veya iş kodunuzu gelecekteki yöntemle karşılaştırıldığında çalıştırmanın yolunu sağlar. Kuyruktaki işleri izlemenizi sağlar (bu kuyruk, işlerin eşzamansız olarak çalışabilmesi için Queueable arabirimi tarafından oluşturulur).

Sözdizimi:

 public class <Queueable Class'ın Adı>, Queueable { öğesini uygular
//Bu, Queueable Arabirimi tarafından kapsanan ve bu yöntemi Queueable sınıfında devralmak için gerekli olan 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şlemi, bunları Queueable arabirimini uygulayarak ve Apex iş kuyruğuna bir iş ekleyerek 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. Kuyruğa alınan her iş, sistem kaynakları kullanılabilir olduğunda çalışır. Arabirim yöntemlerini kullanmanın bir yararı, yığın boyutu sınırları gibi bazı düzenleyici sınırlarının eşzamanlı Apex için olduğundan daha yüksek olmasıdır.

Gelecek Apeks

Future apex, daha sonra sistem kaynakları kullanılabilir olduğunda süreçleri ayrı bir iş parçacığında çalıştırmak için kullanılır. Future apex'i kullanmak için herhangi bir sınıf oluşturmamız gerekmiyor, 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 “@future” açıklamasını kullanmamız yeterli .

Eşzamanlı işleme kullanılırken, 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 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 yararlarını sağlar.
Sözdizimi:

 global sınıf <SınıfAdı> {
//Aşağıda, verilen yöntemi tanımlayan gelecek açıklama, gelecek yöntemdir.
@gelecek
public static void <FutureMethodName>(List<Id> recordIds) {
List<Kişi> hesapları = [Id IN :recordIds] Bulunduğu Kişiden Kimliği, Adı, Soyadı Seçin;
// harika şeyler yapmak için kişi kayıtlarını işleyin
}
}

Ayrıca Okuyun: Pipedrive ve Salesforce Entegrasyonu Nasıl Bağlanır?

Gelecekteki yöntemler tipik olarak aşağıdakiler için kullanılır:

Harici Web hizmetlerine çağrılar. Bir tetikleyiciden veya bir DML işlemi gerçekleştirdikten sonra belirtme çizgileri yapıyorsanız, gelecekteki veya kuyruğa alınabilir bir yöntem kullanmanız gerekir. Tetikleyicideki bir bilgi, veri tabanı bağlantısını belirtme çizgisinin ömrü boyunca açık tutacaktır.

Kaynak yoğun hesaplama veya kayıtların işlenmesi gibi zaman izin verdiğinde kendi iş parçacığında çalıştırmak istediğiniz işlemler

Not: Nesne, yöntemi çağırdığınız zaman ile gerçekte yürütüldüğü zaman arasında değişebileceğinden, Nesnelerin Nedeni gelecekteki yönteme argüman olarak iletilemez. Gelecekteki yöntemler, sistem kaynakları kullanılabilir olduğunda çalışır. Gelecekteki bir yöntem yürütüldüğünde, her türlü kötü şeyin olmasına neden olabilecek eski nesne değerine sahip olabilir.

Hatırlanacak şeyler

  • Gelecekteki yöntem statik olmalıdır
  • Dönüş türü geçersiz olmalıdır
  • Belirtilen parametreler ilkel veri türleri, ilkel veri türleri dizileri veya ilkel veri türleri koleksiyonları olmalıdır.
  • Gelecekteki yöntemleri, diğer yöntemleri çağırdığınız şekilde çağırabilirsiniz. Ancak, gelecekteki bir yöntem başka bir gelecekteki yöntemi çağıramaz.
  • Apex çağrısı başına 50'den fazla yöntem çağrısı yok
  • Bir startTest, stopTest bloğunda çağrılan @future veya executeBatch gibi eşzamansız çağrılar, kuyruğa alınan iş sayısı limitlerinize dahil değildir.
satış gücü geliştiricilerini işe al

Gelecek Yöntem ve Kuyruğa Alınabilir Sınıf için Örnek

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 çok kaydı güncelleyen Kuyruğa Alınabilir Apex'i kullandım. Gelecek Yöntem ve Kuyruğa Alınabilir Sınıf

Özel Meta Verilerin Özel Güncellenmesi

Özel Meta Verilerin Özel Güncellenmesi

Kuyruğa Alınabilir Sınıf

Kuyruğa Alınabilir Sınıf

Future yöntemini çağırmak ve listeyi Queueable sınıfında güncellemek için göndermek

Future yöntemini çağırma

Emizentech, özgün ve deneyimli bir satış gücü danışmanlık şirketidir ve yetenekli satış gücü geliştiricilerimiz, bir sonraki satış gücü projeniz için size profesyonel yardım sağlayabilir.

Ayrıca Okuyun: Salesforce Lightning Haritası Bileşeni Nasıl Oluşturulur?