Expand my Community achievements bar.

Radically easy to access on brand approved content for distribution and omnichannel performant delivery. AEM Assets Content Hub and Dynamic Media with OpenAPI capabilities is now GA.

Using Scheduler API

Avatar

Level 2

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.

6 Replies

Avatar

Level 10

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

Avatar

Level 2

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.

Avatar

Employee Advisor

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

Avatar

Employee Advisor

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

Avatar

Level 4

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