I am salesforce admin currently facing performance issue with one of the 3rd party(classy-SF) Integration. Batch job installed from classy are running 300+ times in 24 hours( batch size 1).Each batch job taking 3-5secs. There are 4-5mins queuing/holding between 2 run as there are other batch job running at that time. This batch job is processing 500-600 Inbound API request . There are approximately 8k API request waiting in queue + 1k new incoming API request everyday . At this rate, the API request to be processed growing every day, batch job is processing at one month lag . All batch job are from managed package from provider. What best I can do to solve this issue? Any suggestion plz.
2 Answers
You might not be able to do anything, at least not without help from the vendor. It should easily be possible to run 15,000 batch executions a day at 5 seconds each. The ideal solution would be to reset the batch to a higher scope size.
You should be able to set it to 20 or so, assuming the code supports it.Even with the 4-5 minute wait between each execution, you're looking at being able to support 6000 records a day instead of just 300.
If you can't modify the scope size, and you need all your batches, then something has to give; one of the vendors will need to fix their code so they can happily co-exist. The resource limits in place are there for a reason (so everyone has a snappy Salesforce experience), so the code has to run within those limitations.
-
Thank you so much for the quick response. I believe scope size 1 for some reason It's doing update/create on 3-5 major object. Although I check will check with them. Commented Jul 25, 2018 at 15:05
-
@AthimathiSachithanandam Yes, like I said, the vendor may have to optimize their code. The ideal situation for you is to be able to increase the scope size as much as possible.– sfdcfox ♦Commented Jul 25, 2018 at 15:15
-
@AthimathiSachithanandam I saw your comment (but comments do not belong in answers). The platform automatically allocates resources to all orgs that have asynchronous code, plus future/queueable/scheduled methods, so requesting additional resources are not going to help. You're going to need to look at your overall org structure. And yes, I know vendors like to point fingers elsewhere, but I can almost guarantee that at least one of them are guilty of bad code writing.– sfdcfox ♦Commented Jul 25, 2018 at 15:26
-
Sorry new to this website.I am assuming i can comment here for further clarification.. thanks,It gives me lot of insight .. My job here to point out guilty party...Apart from increasing scope, I am trying to reduce in between 4-5mins gap. I see another schedule job in queue 1-2mins before processing(no there job in queue). only possible way to monitor is log. I have no idea how to monitor that 1-2mins gap. Any suggestion helps..thanks Commented Jul 25, 2018 at 15:50
There was an "ApexToken" stuck in "Queue" for long time. After deleting, the batch job processed increase dramatically.