Batch Apex এবং Queueable Apex Salesforce-এ বড় ডেটাসেট প্রক্রিয়াকরণ এবং লং-রানিং প্রসেস হ্যান্ডল করার জন্য ব্যবহৃত দুটি গুরুত্বপূর্ণ Asynchronous Apex প্রক্রিয়া। এগুলোর মাধ্যমে গভর্নর লিমিট মেনে কার্যক্ষমতা নিশ্চিত করা যায়। নিচে Batch Apex এবং Queueable Apex সম্পর্কে বিস্তারিত আলোচনা করা হলো।
Batch Apex হলো একটি Asynchronous Apex প্রক্রিয়া, যা বড় ডেটাসেটকে ছোট ছোট ব্যাচে ভাগ করে প্রসেস করে। এটি বড় ডেটাসেট প্রক্রিয়াকরণের জন্য খুবই কার্যকরী এবং গভর্নর লিমিটের মধ্যে থেকে কার্যক্রম সম্পন্ন করে। Batch Apex-এ ডেটা প্রসেসিং ২০০টি রেকর্ডের ব্যাচে সম্পন্ন হয়।
Batch Apex ক্লাসে তিনটি মেথড থাকে:
public class BatchExample implements Database.Batchable<SObject> {
public Database.QueryLocator start(Database.BatchableContext BC) {
return Database.getQueryLocator('SELECT Id, Name FROM Account');
}
public void execute(Database.BatchableContext BC, List<SObject> scope) {
for (SObject s : scope) {
Account acc = (Account) s;
acc.Name = acc.Name + ' Updated';
}
update scope;
}
public void finish(Database.BatchableContext BC) {
System.debug('Batch process completed.');
}
}
// Batch Apex চালানোর জন্য
Database.executeBatch(new BatchExample(), 100);
Queueable Apex হলো Future Methods-এর একটি উন্নত সংস্করণ, যা চেইনিং এবং কনস্ট্রাক্টর ব্যবহার করে ডেটা প্রক্রিয়াকরণ আরও সহজ করে তোলে। Queueable Apex-এ চেইনড প্রসেস চালানো যায় এবং বড়, জটিল কাজগুলি সহজে হ্যান্ডল করা যায়।
Queueable Apex-এ execute মেথড থাকে, যেখানে নির্দিষ্ট Async লজিক চালানো হয়।
public class QueueableExample implements Queueable {
private String accountName;
public QueueableExample(String accountName) {
this.accountName = accountName;
}
public void execute(QueueableContext context) {
List<Account> accounts = [SELECT Id, Name FROM Account WHERE Name = :accountName];
for (Account acc : accounts) {
acc.Name = acc.Name + ' Processed';
}
update accounts;
}
}
// Queueable Apex কল করা
QueueableExample job = new QueueableExample('Tech Solutions');
ID jobID = System.enqueueJob(job);
বৈশিষ্ট্য | Batch Apex | Queueable Apex |
---|---|---|
প্রধান উদ্দেশ্য | বড় ডেটাসেট প্রক্রিয়া ও বড় প্রসেসিং | Future Methods-এর বিকল্প ও চেইনিং সক্ষমতা |
ব্যাচ প্রসেসিং | ডেটাকে ব্যাচে ভাগ করে ২০০ রেকর্ড প্রতি প্রসেসিং | ব্যাচ ভাগ নেই, পুরো কাজ একবারে প্রসেসিং |
চেইনিং | চেইনিং সমর্থন করে না | চেইনিং সমর্থন করে |
কনস্ট্রাক্টর থেকে ডেটা পাস | সমর্থন করে না | সমর্থন করে |
গভর্নর লিমিট | বেশিরভাগ গভর্নর লিমিট সাধারণ লিমিটের তুলনায় বেশি | বেশিরভাগ গভর্নর লিমিট Future Methods-এর মতো |
ব্যবহার ক্ষেত্র | বড় ডেটাসেট প্রক্রিয়া ও লং-রানিং প্রসেস | ছোট ও মাঝারি লজিক্যাল কার্যক্রম এবং ডেটা পাস |
Batch Apex এবং Queueable Apex ব্যবহার করে বড় এবং জটিল ডেটা প্রক্রিয়াকরণের কার্যক্ষমতা বৃদ্ধি করে Salesforce প্ল্যাটফর্মে উন্নত কার্যক্ষমতা নিশ্চিত করা যায়।
common.read_more