Skip to main content
Level 2
March 13, 2018

Using Scheduler API

Hi,

I have a specific use case where i would like to take input from user to schedule a particular job in AEM. I am using a simple form on front end and sending those values to server (Sling servlet mapped to the URL in ajax call) using an ajax call. Those values are needed to create a job scheduled at the time that the user has selected. I am not able to come up with a solution where i can pass on these custom parameters that i picked up from UI to the scheduler and create a job.

Most of the articles that i came across are using @Property  annotation and passing cron expression as OSGI bundle property and use this value in Activate method to create a job and other relevant options.

Can i pass some values from Front end to servlet and then to the class where i can create a scheduled job using the parameters i supply from front end?

Thanks.

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

6 replies

smacdonald2008
Level 10
March 13, 2018

If you do not want to hard code the CRON Expressions - look at setting them via OSGi configuration values.

Translate
anujk4Author
Level 2
March 14, 2018

Thanks for the Replies.

smacdonald2008​ : no i cant Hardcode the CRON and hence cant do it with OSGI config. It would be the last resort.

@Jorg : I will take a look at JobManager API. is there any resource that can explain the usage?

Thanks.

Translate
joerghoh
Adobe Employee
Adobe Employee
March 14, 2018

Some starting information is available at Apache Sling :: How to Manage Jobs in Sling , but I don't know anything going beyond that :-(

Jörg

Translate
joerghoh
Adobe Employee
Adobe Employee
March 13, 2018

Hi,

you can also create a sling job using the Sling JobManager API. There is also a fluent API available via the JobBuilder.

JobManager (Apache Sling 8 API)

Jörg

Translate
Rima_Mittal
Level 4
March 14, 2018

Hi,

The Scheduler API Scheduler (Apache Sling 7 API) has certain methods that might help, see fireJobAt method. Since FireJobAt is deprecated, we can use schedule(Object, ScheduleOptions) instead.

Please see an example of fireJobAt here: CQ Scheduling Basics - Blog - 6D Global

Translate
Community Advisor
March 14, 2018