Metode Masa Depan Vs. Puncak Antrian di Salesforce
Diterbitkan: 2023-11-20Di dunia pengembangan Salesforce yang serba cepat, memahami alat dan metode terbaik untuk pengkodean yang efisien dan efektif sangatlah penting. Artikel ini membahas dua konsep utama: Metode Masa Depan dan Apex yang Dapat Diantrekan. Keduanya merupakan teknik canggih yang digunakan di Salesforce untuk menangani operasi asinkron, namun keduanya memiliki fitur dan kasus penggunaan yang berbeda.
Kami akan menjelajahi nuansa Metode Masa Depan dan Queueable Apex, membandingkan fungsi, keunggulan, dan waktu penggunaannya dalam proyek Salesforce Anda. Baik Anda seorang pengembang berpengalaman atau baru mengenal Salesforce, perbandingan ini akan memberikan wawasan berharga, membantu Anda membuat keputusan yang tepat untuk mengoptimalkan kode Anda.
Pantau terus kami saat kami mengungkap kerumitannya dan mengungkap potensi Metode Masa Depan dan Puncak Antrean di Salesforce!
Daftar isi
Mengapa Metode Masa Depan?
Jika Anda ingin menjalankan proses di thread terpisah, di lain waktu dan ingin mengeksekusi kode secara asinkron, kita perlu menggunakan metode masa depan.
Kapan digunakan?
Ini digunakan untuk operasi yang berjalan lama seperti pemanggilan ke layanan Web eksternal atau operasi apa pun yang ingin Anda jalankan di threadnya sendiri
Mengapa Apex Berantri?
Like future juga digunakan untuk mengeksekusi kode asinkron, dan ini memungkinkan Anda menambahkan pekerjaan dalam antrean dan meningkatkan cara menjalankan kode asinkron dibandingkan dengan metode masa depan.
Kapan digunakan?
Untuk proses Apex yang berjalan dalam waktu lama, seperti operasi database ekstensif atau pemanggilan layanan Web eksternal, Anda dapat menjalankannya secara asinkron dengan mengimplementasikan antarmuka Queueable
Baca Juga: Bagaimana Cara Menerapkan SSO Salesforce Menggunakan OAuth?
Perbedaan Antara Puncak Masa Depan dan Puncak Antrian:
Metode Masa Depan | Puncak yang dapat antri |
---|---|
1. Masa depan tidak akan pernah digunakan untuk mengerjakan SObjects atau tipe objek. 2. Bila menggunakan metode masa depan kita tidak dapat memantau pekerjaan yang sedang dalam proses. 3. Metode masa depan tidak dapat dipanggil di dalam kelas masa depan atau kelas batch. 4. Metode masa depan tidak akan pernah antri. | 1. Pekerjaan yang Antrian dapat berisi variabel anggota sebagai SObjects atau Tipe Apex khusus. 2. Bila menggunakan pekerjaan yang dapat diantri maka akan membuat AsyncApexJob yang dapat kita pantau seperti Pekerjaan yang dijadwalkan. 3. Queueable Apex dapat dipanggil dari kelas masa depan dan kelas batch. 4. Menggunakan Queueable Apex akan merangkai pekerjaan yang dapat diantri dan di Edisi Pengembang hanya 5 Pekerjaan. |
Puncak yang dapat antri
Kelas Queueable adalah kelas yang dibuat dengan mengimplementasikan Antarmuka “Queueable” yang telah ditentukan sebelumnya. Antarmuka ini memungkinkan cara menjalankan pekerjaan asinkron atau kode pekerjaan Anda dibandingkan dengan metode masa depan. Ini akan memungkinkan Anda untuk memantau pekerjaan yang ada dalam antrian (antrian ini dibuat oleh antarmuka Queueable sehingga pekerjaan dapat berjalan secara asinkron).
Sintaksis:
public class <Nama Kelas Queueable> mengimplementasikan Queueable { //Ini adalah satu-satunya metode yang terkandung dalam Antarmuka Queueable dan diperlukan untuk mewarisi metode ini di kelas Queueable. eksekusi kekosongan publik (konteks QueueableContext) { //Kode yang perlu dieksekusi } }
Setiap proses Apex yang memerlukan waktu lama dalam eksekusi, seperti operasi database ekstensif atau pemanggilan layanan Web eksternal, Anda dapat menjalankannya secara asinkron dengan mengimplementasikan antarmuka Queueable dan menambahkan pekerjaan ke antrean pekerjaan Apex.
Pekerjaan apex asinkron Anda berjalan di latar belakang dalam threadnya sendiri dan tidak menunda eksekusi logika Apex utama Anda. Setiap tugas yang diantri dijalankan ketika sumber daya sistem tersedia. Keuntungan menggunakan metode antarmuka adalah bahwa beberapa batas gubernur lebih tinggi daripada Apex sinkron, seperti batas ukuran heap.
Metode Puncak Masa Depan
Apex masa depan digunakan untuk menjalankan proses di thread terpisah, nanti ketika sumber daya sistem tersedia. Untuk menggunakan apex masa depan kita tidak perlu membuat kelas apa pun, kita hanya perlu menggunakan anotasi “@future” untuk mengidentifikasi metode yang berjalan secara asinkron dan untuk menunjukkan bahwa metode yang dijelaskan di bawah anotasi ini adalah metode masa depan.
Saat menggunakan pemrosesan sinkron, semua pemanggilan metode dilakukan dari thread yang sama yang mengeksekusi kode Apex, dan tidak ada pemrosesan tambahan yang dapat dilakukan hingga proses selesai. Anda dapat menggunakan metode masa depan untuk operasi apa pun yang ingin Anda jalankan secara asinkron di threadnya sendiri. Hal ini memberikan keuntungan karena tidak menghalangi pengguna untuk melakukan operasi lain dan memberikan batas gubernur dan eksekusi yang lebih tinggi untuk proses tersebut.
Sintaksis:
kelas global <NamaKelas> { //Di bawah ini adalah anotasi masa depan yang mendefinisikan metode yang diberikan adalah metode masa depan. @masa depan public static void <FutureMethodName>(Daftar<Id> recordIds) { Daftar<Kontak> akun = [Pilih Id, Nama Depan, Nama Belakang dari Kontak Dimana Id IN :recordIds]; // memproses catatan kontak untuk melakukan hal-hal luar biasa } }
Baca Juga: Bagaimana Menghubungkan Integrasi Pipedrive dan Salesforce?
Metode masa depan biasanya digunakan untuk
Info ke layanan Web eksternal. Jika Anda membuat pemanggilan dari pemicu atau setelah melakukan operasi DML, Anda harus menggunakan metode yang akan datang atau yang dapat diantrekan. Pemanggilan di pemicu akan membuat koneksi database tetap terbuka selama masa pemanggilan.
Operasi yang ingin Anda jalankan di threadnya sendiri ketika waktu mengizinkan seperti semacam penghitungan intensif sumber daya atau pemrosesan catatan
Catatan: Alasan Objek tidak dapat diteruskan sebagai argumen ke metode masa depan karena objek dapat berubah antara waktu Anda memanggil metode dan waktu eksekusi sebenarnya. Metode masa depan dijalankan ketika sumber daya sistem tersedia. Ketika metode masa depan dijalankan, mungkin nilai objeknya sudah lama, yang dapat menyebabkan segala macam hal buruk terjadi.
Hal-hal untuk diingat
- Metode masa depan harus statis
- Jenis pengembalian harus batal
- Parameter yang ditentukan harus berupa tipe data primitif, array tipe data primitif, atau kumpulan tipe data primitif
- Anda dapat memanggil metode masa depan dengan cara yang sama seperti Anda memanggil metode lainnya. Namun, metode masa depan tidak dapat memanggil metode masa depan lainnya
- Tidak lebih dari 50 panggilan metode per pemanggilan Apex
- Panggilan asinkron, seperti @future atauexecuteBatch, yang dipanggil dalam blok startTest, stopTest, tidak dihitung terhadap batas jumlah pekerjaan yang diantrekan
Contoh Metode Masa Depan dan Kelas Antrian
Di sini saya mendapatkan nilai 4 mata uang dalam dolar Kanada. Untuk GBP, USD, AUD, CAD. Dan menyimpan nilainya ke mata uang metadata khusus. Untuk HTTPREQUEST disini saya menggunakan metode Future. Dan karena memperbarui beberapa catatan pada saat yang sama saat menjalankan batch untuk itu saya telah menggunakan Queueable Apex yang memperbarui banyak catatan sekaligus.
Pembaruan Kustom Metadata Kustom
Kelas yang Antrian
Memanggil metode Masa Depan dan mengirimkan daftar untuk diperbarui di kelas Queueable
Emizentech adalah perusahaan konsultan tenaga penjualan yang otentik dan berpengalaman dan pengembang tenaga penjualan kami yang mahir dapat memberikan Anda bantuan profesional untuk proyek tenaga penjualan Anda berikutnya.