AEM Scheduler running even if scheduler is disabled and Bundle is stopped | Community
Skip to main content
Level 2
June 2, 2020
Solved

AEM Scheduler running even if scheduler is disabled and Bundle is stopped

  • June 2, 2020
  • 5 replies
  • 9717 views

Hi,

 

I had created a custom scheduler for sending emails based on inbox tasks in aem. It was working properly until a day ago when suddenly, even if the scheduler is disabled, and the bundle is stopped, it is still somehow running and I get emails for newly created tasks. But in the project logs it shows that the scheduler has been stopped and no evidence of the code being executed. So a different scheduler is somehow still running and it is not part of this bundle?

Please let me know how I should go about fixing this issue and finding/stopping that scheduler. 

 

Thanks.

This post is no longer active and is closed to new replies. Need help? Start a new post to ask your question.
Best answer by Nupur_Jain

Hi @abinav_98 

 

Scheduler or we can say thread can still run even if the bundle is down. We have to remove scheduler on deactivation of scheduler service. You can remove it in @Deactivate annotated method of your service. Find the sample snippet:

 

@Component(immediate = true) public class TestScheduler implements Runnable { @Reference private Scheduler scheduler; private String schedulerId = "Scheduler"; @Activate @Modified protected void activate() { addScheduler(); } @Deactivate protected void deactivate() { removeScheduler(); } private void removeScheduler() { scheduler.unschedule(String.valueOf(schedulerId)); } private void addScheduler() { ScheduleOptions scheduleOptions = scheduler .EXPR(""); scheduleOptions.name(String.valueOf(schedulerId)); scheduler.schedule(this, scheduleOptions); } @Override public void run() { //what needs to be done } }

 

Hope it helps!

5 replies

Nupur_Jain
Adobe Employee
Nupur_JainAdobe EmployeeAccepted solution
Adobe Employee
June 2, 2020

Hi @abinav_98 

 

Scheduler or we can say thread can still run even if the bundle is down. We have to remove scheduler on deactivation of scheduler service. You can remove it in @Deactivate annotated method of your service. Find the sample snippet:

 

@Component(immediate = true) public class TestScheduler implements Runnable { @Reference private Scheduler scheduler; private String schedulerId = "Scheduler"; @Activate @Modified protected void activate() { addScheduler(); } @Deactivate protected void deactivate() { removeScheduler(); } private void removeScheduler() { scheduler.unschedule(String.valueOf(schedulerId)); } private void addScheduler() { ScheduleOptions scheduleOptions = scheduler .EXPR(""); scheduleOptions.name(String.valueOf(schedulerId)); scheduler.schedule(this, scheduleOptions); } @Override public void run() { //what needs to be done } }

 

Hope it helps!

abinav_98Author
Level 2
June 2, 2020

Hi @nupur_jain , thank you for the response.

 

Yes, I am already using the code snippet you shared in my code.

 

@Deactivate
protected void deactivate(AkamDASHSchedulerConfiguration dashOSGIConfiguration) {
log.info("DeActivate method");

removeScheduler(dashOSGIConfiguration);
}
private void removeScheduler(AkamDASHSchedulerConfiguration dashOSGIConfiguration) {
log.info("RemoveScheduler method");

// unscheduling/removing the scheduler
scheduler.unschedule(conDASHSCHEDULERCONFIG);
}


It was working properly until a day ago. It should show the scheduler going to run method in the project log if that's the case but it doesn't. So it looks like there is a duplicate/cached scheduler which is somehow still running.. Any idea how I should solve this issue?

VeenaVikraman
Community Advisor
Community Advisor
June 2, 2020

Can you check if there is any active jobs running ? If you check /var/eventing/jobs , may be you can find any active jobs running. 

abinav_98Author
Level 2
June 2, 2020
Good point, I can check that. However the URL your provided doesn't seem to work (/var/eventing/jobs). Did it get moved?
Singaiah_Chintalapudi
Level 7
June 2, 2020

You can check existing jobs under:/var/evening/jobs and also check the scheduler config under: /system/console/configMgr just to make sure the scheduler is disabled or removed.

Nupur_Jain
Adobe Employee
Adobe Employee
June 2, 2020

@abinav_98 

 

There is system console to check for registered schedulers.

Access http://host:port/system/console/status-slingscheduler to check if you see your scheduler there.

Nupur_Jain
Adobe Employee
Adobe Employee
June 3, 2020

@abinav_98 

 

did you get anything?

Adobe Employee
June 3, 2020

Few steps:

 

1. Check if the scheduler is active from /system/console/status-slingscheduler. 

2. If not active then, Restart AEM

3. Check if you are using a workflow step which may be sending emails 

 

if not then open a support ticket for further investigation