Batch Apex Execution এবং Batch Size Optimization হলো Salesforce-এ Batch Apex সঠিকভাবে সম্পাদনের জন্য গুরুত্বপূর্ণ দুটি দিক। Batch Execution প্রক্রিয়াকরণের কাজকে ছোট ছোট অংশে ভাগ করে কার্যক্ষমতা বাড়ায়, এবং Batch Size Optimization সঠিক ব্যাচ সাইজ নির্ধারণ করে গভর্নর লিমিট মেনে কার্যক্ষমতা নিশ্চিত করে।
Batch Apex Execution হলো Salesforce-এ বড় ডেটাসেট প্রক্রিয়াকরণের একটি প্রক্রিয়া, যা ডেটাকে ছোট ছোট অংশে ভাগ করে কার্যসম্পাদনা করে। এতে তিনটি ধাপ রয়েছে: start, execute, এবং finish।
Start Method ডেটা সংগ্রহ করে প্রক্রিয়াকরণের জন্য প্রস্তুত করে। এখানে SOQL কুয়েরির মাধ্যমে প্রক্রিয়াকরণের জন্য ডেটা সিলেক্ট করা হয়।
global Database.QueryLocator start(Database.BatchableContext BC) {
return Database.getQueryLocator('SELECT Id, Name FROM Account');
}
Execute Method প্রক্রিয়াকরণের মূল অংশ, যা ব্যাচে নির্দিষ্ট কাজ চালায়। এখানে ছোট ব্যাচে ডেটা প্রসেস করে এবং প্রয়োজনীয় DML অপারেশন চালানো হয়।
global void execute(Database.BatchableContext BC, List<SObject> scope) {
for (SObject s : scope) {
Account acc = (Account) s;
acc.Name = acc.Name + ' - Processed';
}
update scope;
}
scope
প্যারামিটার হিসেবে প্রদান করা হয়।Finish Method সমস্ত ব্যাচ সম্পন্ন হওয়ার পরে চূড়ান্ত কাজ সম্পন্ন করে, যেমন লগিং, নোটিফিকেশন, বা ডেটা সংরক্ষণ করা।
global void finish(Database.BatchableContext BC) {
System.debug('Batch process completed.');
}
Batch Size Optimization হল এমন একটি কৌশল যা ব্যাচের সঠিক সাইজ নির্ধারণ করে, যাতে গভর্নর লিমিট মেনে কার্যক্ষমতা নিশ্চিত হয়। Salesforce-এ ডিফল্ট ব্যাচ সাইজ হলো ২০০, কিন্তু বড় ডেটাসেট বা ভারী প্রক্রিয়াকরণের জন্য এই সাইজ প্রয়োজন অনুযায়ী পরিবর্তন করা যায়।
Database.executeBatch(new BatchExample(), 100);
ভারী লজিকের জন্য ছোট ব্যাচ সাইজ ব্যবহার করুন: বড় ব্যাচের জন্য ৫০ বা ১০০ এর মতো ছোট সাইজ কার্যক্ষমতা বাড়াতে পারে।
Testing এবং Monitoring ব্যবহার করুন: ছোট থেকে বড় সাইজের মধ্যে বিভিন্ন ব্যাচ সাইজ টেস্ট করে কার্যক্ষমতা পরীক্ষা করুন।
ব্যাচ সাইজকে ডায়নামিকভাবে সেট করুন: বিভিন্ন পরিস্থিতি অনুযায়ী ব্যাচ সাইজ নির্ধারণ করতে ডায়নামিক অপশন ব্যবহার করা যায়।
Exception Handling যুক্ত করুন: গভর্নর লিমিট অতিক্রম এড়াতে Exception Handling নিশ্চিত করুন।
Database.Stateful ব্যবহার করুন: Database.Stateful
ব্যবহার করে ব্যাচ সাইজের সঠিকতা এবং ডেটা স্টেট ট্র্যাক করা যেতে পারে।
global class StatefulBatchExample implements Database.Batchable<SObject>, Database.Stateful {
global Integer processedRecords = 0;
global Database.QueryLocator start(Database.BatchableContext BC) {
return Database.getQueryLocator('SELECT Id, Name FROM Account');
}
global void execute(Database.BatchableContext BC, List<SObject> scope) {
for (SObject s : scope) {
Account acc = (Account) s;
acc.Name = acc.Name + ' - Processed';
processedRecords++;
}
update scope;
}
global void finish(Database.BatchableContext BC) {
System.debug('Total Records Processed: ' + processedRecords);
}
}
Batch Apex Execution Salesforce-এ বড় ডেটাসেট প্রক্রিয়াকরণের একটি কার্যকরী পদ্ধতি, যা তিনটি মেথড (start, execute, এবং finish) দ্বারা কাজ করে। Batch Size Optimization গভর্নর লিমিট মেনে চলা এবং কার্যক্ষমতা নিশ্চিত করার জন্য অত্যন্ত গুরুত্বপূর্ণ। ছোট ব্যাচ সাইজ ভারী প্রক্রিয়াকরণের জন্য কার্যকরী এবং বড় ব্যাচের জন্য বেশি কার্যক্ষম। সঠিক ব্যাচ সাইজ নির্বাচন, Exception Handling, এবং Logging নিশ্চিত করে Batch Apex Execution আরও কার্যকরী করা সম্ভব।
common.read_more