Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class MyQueueable1 implements Queueable {
- Public Static list < Account > acclist = new list < Account > ();
- public MyQueueable1() {
- }
- public void execute(QueueableContext context) {
- System.enqueueJob(new MyQueueable2());
- }
- //This class is not executing..
- public class MyQueueable2 implements Queueable {
- public MyQueueable2() {
- }
- public void execute(QueueableContext context) {
- List < Account > a = [SELECT Id, Name
- FROM Account WHERE Id =: acclist];
- }
- }
- }
- public abstract class ChainedQueueable implements Queueable {
- private Set<Id> recordIds;
- public AbstractChainedQueueable(Set<Id> recordIds) {
- this.recordIds = recordIds;
- }
- public abstract void processRecord(Id recordId);
- public abstract ChainedQueueable createJob(Set<Id> ids);
- public void execute(QueueableContext context) {
- if (recordIds.size() == 0) {
- return;
- }
- Id recordId = getNextInvoiceId();
- processRecord(recordId);
- processNextInvoice();
- }
- private void processNextInvoice()
- {
- enqueueJob(this.recordIds);
- }
- private void enqueueJob(Set<Id> ids) {
- if (ids.size() == 0) {
- return;
- }
- // create next job
- AbstractChainedQueueable job = createJob(ids);
- // queue next job
- Id jobId = System.enqueueJob(job);
- System.debug(jobId);
- }
- public void enqueueJob() {
- // queue job
- Id jobId = System.enqueueJob(this);
- System.debug(jobId);
- }
- private Id getNextInvoiceId() {
- // get next record
- Id recordId;
- for(Id item : recordIds) {
- recordId = item;
- break;
- }
- // remove recordId
- recordIds.remove(recordId);
- return recordId;
- }
- }
- public class ExampleChainedQueueable extends ChainedQueueable {
- public ExampleChainedQueueable(Set<Id> recordIds) {
- super(recordIds);
- }
- public override void processRecord(Id recordId) {
- // do work here
- }
- public override ChainedQueueable createJob(Set<Id> ids) {
- return new ExampleQueueable(ids);
- }
- }
- Set<Id> recordIds = new Set<Id>();
- new ExampleChainedQueueable(recordIds).enqueueJob();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement