7

I have a legacy process that has created about 2000 scheduled jobs over 12 months. They are all appearing in the Scheduled Jobs list in the UI. However, when I query the CronTriggers object, I see all these jobs have a State = DELETED.

What's the fastest way to get rid of these jobs? I've tried using Data Loader to delete the CronTrigger records but I get an insufficient permissions error. I have a case open with Salesforce but haven't heard back yet.

I have found this Known Issues item but I don't want to manually delete all 2000 jobs. https://success.salesforce.com/issues_view?id=a1p30000000STwPAAW

thanks David

6

You are right this is related to a known issue, but this has been adressed on SFSE before. See this question

Ghost Schedulable Classes Blocking Deployment

According to @Ralph, a SFSE user with high reputation, he has first hand experience with this and SF support was actually able to fix for him.

Salesforce support can run a quick fix to address. Contact them and ask to run "fix for locked scheduled class" and include the deployment error message.

4

IIRC, jobs stick around until a periodic clean up process clears them away. I believe jobs older than a week get cleared out automatically. I can't find any documentation for this.

To force a scheduled job to disappear you'll want to use the System.abortJob call. Unfortunately it doesn't have a batch version and each call counts as a DML statement, so it can take a while to clear all of these out. Just run the following from the developer console until you've got no scheduled jobs left.

for(CronTrigger cron : [
  SELECT Id FROM CronTrigger WHERE State = 'DELETED'
]) {
  system.abortJob(cron.id);
}

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.