You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by cz...@apache.org on 2014/01/17 12:05:51 UTC
svn commit: r1559070 - in /sling/site/trunk/content:
documentation/bundles/scheduler-service-commons-scheduler.mdtext
site/.htaccess
Author: cziegeler
Date: Fri Jan 17 11:05:50 2014
New Revision: 1559070
URL: http://svn.apache.org/r1559070
Log:
Update scheduler documentation
Modified:
sling/site/trunk/content/documentation/bundles/scheduler-service-commons-scheduler.mdtext
sling/site/trunk/content/site/.htaccess
Modified: sling/site/trunk/content/documentation/bundles/scheduler-service-commons-scheduler.mdtext
URL: http://svn.apache.org/viewvc/sling/site/trunk/content/documentation/bundles/scheduler-service-commons-scheduler.mdtext?rev=1559070&r1=1559069&r2=1559070&view=diff
==============================================================================
--- sling/site/trunk/content/documentation/bundles/scheduler-service-commons-scheduler.mdtext (original)
+++ sling/site/trunk/content/documentation/bundles/scheduler-service-commons-scheduler.mdtext Fri Jan 17 11:05:50 2014
@@ -1,9 +1,74 @@
-translation_pending: true
Title: Scheduler Service (commons scheduler)
-The scheduler is a service for scheduling other services/jobs (it uses the open source Quartz library). The scheduler can be used in two ways, by registering the job through the scheduler API and by leveraging the whiteboard pattern that is supported by the scheduler.
+The scheduler is a service for scheduling other services/jobs (it uses the open source Quartz library). The scheduler can be used in two ways, by registering the job through the scheduler API and by leveraging the whiteboard pattern that is supported by the scheduler. In most cases the whiteboard pattern is preferred
+
+## Examples of jobs that are scheduled by leveraging the whiteboard pattern
+
+The following examples show you how to define and schedule a job by leveraging the whiteboard pattern.
+
+### Scheduling with a cron expression
+
+The following job is executed every minute by setting *scheduler.expression* to the cron expression *"0 * * * * ?"*:
+
+
+ package sling.docu.examples;
+
+ import org.slf4j.Logger;
+ import org.slf4j.LoggerFactory;
+ import org.apache.felix.scr.annotations.Component;
+ import org.apache.felix.scr.annotations.Service;
+ import org.apache.felix.scr.annotations.Property;
+
+ @Component
+ @Service(value = Runnable.class)
+ @Property( name = "scheduler.expression", value = "0 * * * * ?")
+ public class ScheduledCronJob implements Runnable {
+
+ /** Default log. */
+ protected final Logger log = LoggerFactory.getLogger(this.getClass());
+
+ public void run() {
+ log.info("Executing a cron job (job#1) through the whiteboard pattern");
+ }
+ //
+ }
+
+
+### Scheduling at periodic times
+
+The following job is executed every ten seconds by setting *scheduler.period* to *10*:
-## The Scheduler API
+
+ package sling.docu.examples;
+
+ import org.slf4j.Logger;
+ import org.slf4j.LoggerFactory;
+ import org.apache.felix.scr.annotations.Component;
+ import org.apache.felix.scr.annotations.Service;
+ import org.apache.felix.scr.annotations.Property;
+
+ @Component
+ @Service(value = Runnable.class)
+ @Property( name = "scheduler.period", longValue = 10)
+ public class ScheduledPeriodicJob implements Runnable {
+
+ /** Default log. */
+ protected final Logger log = LoggerFactory.getLogger(this.getClass());
+
+ public void run() {
+ log.info("Executing a perodic job (job#2) through the whiteboard pattern");
+ }
+ //
+ }
+
+
+### Preventing concurrent execution
+
+By default, jobs can be concurrently executed. To prevent this, set the *scheduler.concurrent* property to *false*:
+
+
+ @Property(name="scheduler.concurrent", boolValue=false)
+ ## The Scheduler API
The scheduler has methods to execute jobs periodically, based on a cron expression or at a given time. For more details please refer to the [javadocs](http://sling.apache.org/apidocs/sling6/org/apache/sling/commons/scheduler/Scheduler.html).
@@ -72,20 +137,21 @@ The code implementing a service that sim
import org.osgi.service.component.ComponentContext;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+ import org.apache.felix.scr.annotations.Component;
+ import org.apache.felix.scr.annotations.Reference;
/**
* This service executes scheduled jobs
*
- * @scr.component immediate="true" metatype="false"
- *
*/
+ @Component
public class HelloWorldScheduledService {
/** Default log. */
protected final Logger log = LoggerFactory.getLogger(this.getClass());
- /** The scheduler for rescheduling jobs.
- * @scr.reference */
+ /** The scheduler for rescheduling jobs. */
+ @Reference
private Scheduler scheduler;
@@ -146,68 +212,5 @@ The code implementing a service that sim
}
-## Examples of jobs that are scheduled by leveraging the whiteboard pattern
-
-The following examples show you how to define and schedule a job by leveraging the whiteboard pattern.
-
-### Scheduling with a cron expression
-
-The following job is executed every minute by setting *scheduler.expression* to the cron expression *"0 * * * * ?"*:
-
-
- package sling.docu.examples;
-
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
-
- /**
- * @scr.component
- * @scr.service interface="java.lang.Runnable"
- * @scr.property name="scheduler.expression" value="0 * * * * ?"
- */
- public class ScheduledCronJob implements Runnable {
-
- /** Default log. */
- protected final Logger log = LoggerFactory.getLogger(this.getClass());
-
- public void run() {
- log.info("Executing a cron job (job#1) through the whiteboard pattern");
- }
- //
- }
-
-
-### Scheduling at periodic times
-
-The following job is executed every ten seconds by setting *scheduler.period* to *10*:
-
-
- package sling.docu.examples;
-
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
-
- /**
- * @scr.component
- * @scr.service interface="java.lang.Runnable"
- * @scr.property name="scheduler.period" value="10" type="Long"
- */
- public class ScheduledPeriodicJob implements Runnable {
-
- /** Default log. */
- protected final Logger log = LoggerFactory.getLogger(this.getClass());
-
- public void run() {
- log.info("Executing a perodic job (job#2) through the whiteboard pattern");
- }
- //
- }
-
-
-### Preventing concurrent execution
-
-By default, jobs can be concurrently executed. To prevent this, set the *scheduler.concurrent* property to *false*:
-
- @scr.property name="scheduler.concurrent" value="false" type="Boolean"
Modified: sling/site/trunk/content/site/.htaccess
URL: http://svn.apache.org/viewvc/sling/site/trunk/content/site/.htaccess?rev=1559070&r1=1559069&r2=1559070&view=diff
==============================================================================
--- sling/site/trunk/content/site/.htaccess (original)
+++ sling/site/trunk/content/site/.htaccess Fri Jan 17 11:05:50 2014
@@ -73,3 +73,4 @@ Redirect Permanent /site/links.html /lin
Redirect Permanent /site/contributing.html /contributing.html
Redirect Permanent /site/project-information.html /project-information.html
Redirect Permanent /site/release-management.html /documentation/development/release-management.html
+Redirect Permanent /site/scheduler-service-commons-scheduler.htm /documentation/bundles/scheduler-service-commons-scheduler.html