You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by bu...@apache.org on 2014/01/17 12:06:01 UTC
svn commit: r894500 - in /websites/staging/sling/trunk/content: ./
documentation/bundles/scheduler-service-commons-scheduler.html site/.htaccess
Author: buildbot
Date: Fri Jan 17 11:06:01 2014
New Revision: 894500
Log:
Staging update by buildbot for sling
Modified:
websites/staging/sling/trunk/content/ (props changed)
websites/staging/sling/trunk/content/documentation/bundles/scheduler-service-commons-scheduler.html
websites/staging/sling/trunk/content/site/.htaccess
Propchange: websites/staging/sling/trunk/content/
------------------------------------------------------------------------------
--- cms:source-revision (original)
+++ cms:source-revision Fri Jan 17 11:06:01 2014
@@ -1 +1 @@
-1558023
+1559070
Modified: websites/staging/sling/trunk/content/documentation/bundles/scheduler-service-commons-scheduler.html
==============================================================================
--- websites/staging/sling/trunk/content/documentation/bundles/scheduler-service-commons-scheduler.html (original)
+++ websites/staging/sling/trunk/content/documentation/bundles/scheduler-service-commons-scheduler.html Fri Jan 17 11:06:01 2014
@@ -83,15 +83,70 @@
</div>
- <div class="tip">
- This page is a translated version of <a href="/site/scheduler-service-commons-scheduler.html" target="sling_cwiki">/site/scheduler-service-commons-scheduler.html</a>. In case of
- doubt you might want to refer to the old page.
- </div>
-
<h1>Scheduler Service (commons scheduler)</h1>
- <p>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.</p>
-<h2 id="the-scheduler-api">The Scheduler API</h2>
+ <p>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</p>
+<h2 id="examples-of-jobs-that-are-scheduled-by-leveraging-the-whiteboard-pattern">Examples of jobs that are scheduled by leveraging the whiteboard pattern</h2>
+<p>The following examples show you how to define and schedule a job by leveraging the whiteboard pattern.</p>
+<h3 id="scheduling-with-a-cron-expression">Scheduling with a cron expression</h3>
+<p>The following job is executed every minute by setting <em>scheduler.expression</em> to the cron expression <em>"0 * </em> * <em> ?"</em>:</p>
+<div class="codehilite"><pre><span class="n">package</span> <span class="n">sling</span><span class="p">.</span><span class="n">docu</span><span class="p">.</span><span class="n">examples</span><span class="p">;</span>
+
+<span class="n">import</span> <span class="n">org</span><span class="p">.</span><span class="n">slf4j</span><span class="p">.</span><span class="n">Logger</span><span class="p">;</span>
+<span class="n">import</span> <span class="n">org</span><span class="p">.</span><span class="n">slf4j</span><span class="p">.</span><span class="n">LoggerFactory</span><span class="p">;</span>
+<span class="n">import</span> <span class="n">org</span><span class="p">.</span><span class="n">apache</span><span class="p">.</span><span class="n">felix</span><span class="p">.</span><span class="n">scr</span><span class="p">.</span><span class="n">annotations</span><span class="p">.</span><span class="n">Component</span><span class="p">;</span>
+<span class="n">import</span> <span class="n">org</span><span class="p">.</span><span class="n">apache</span><span class="p">.</span><span class="n">felix</span><span class="p">.</span><span class="n">scr</span><span class="p">.</span><span class="n">annotations</span><span class="p">.</span><span class="n">Service</span><span class="p">;</span>
+<span class="n">import</span> <span class="n">org</span><span class="p">.</span><span class="n">apache</span><span class="p">.</span><span class="n">felix</span><span class="p">.</span><span class="n">scr</span><span class="p">.</span><span class="n">annotations</span><span class="p">.</span><span class="n">Property</span><span class="p">;</span>
+
+<span class="p">@</span><span class="n">Component</span>
+<span class="p">@</span><span class="n">Service</span><span class="p">(</span><span class="n">value</span> <span class="p">=</span> <span class="n">Runnable</span><span class="p">.</span><span class="n">class</span><span class="p">)</span>
+<span class="p">@</span><span class="n">Property</span><span class="p">(</span> <span class="n">name</span> <span class="p">=</span> "<span class="n">scheduler</span><span class="p">.</span><span class="n">expression</span>"<span class="p">,</span> <span class="n">value</span> <span class="p">=</span> "0 <span class="o">*</span> <span class="o">*</span> <span class="o">*</span> <span class="o">*</span> ?"<span class="p">)</span>
+<span class="n">public</span> <span class="n">class</span> <span class="n">ScheduledCronJob</span> <span class="n">implements</span> <span class="n">Runnable</span> <span class="p">{</span>
+
+ <span class="o">/**</span> <span class="n">Default</span> <span class="nb">log</span><span class="p">.</span> <span class="o">*/</span>
+ <span class="n">protected</span> <span class="n">final</span> <span class="n">Logger</span> <span class="nb">log</span> <span class="p">=</span> <span class="n">LoggerFactory</span><span class="p">.</span><span class="n">getLogger</span><span class="p">(</span><span class="n">this</span><span class="p">.</span><span class="n">getClass</span><span class="p">());</span>
+
+ <span class="n">public</span> <span class="n">void</span> <span class="n">run</span><span class="p">()</span> <span class="p">{</span>
+ <span class="nb">log</span><span class="p">.</span><span class="n">info</span><span class="p">(</span>"<span class="n">Executing</span> <span class="n">a</span> <span class="n">cron</span> <span class="n">job</span> <span class="p">(</span><span class="n">job</span>#1<span class="p">)</span> <span class="n">through</span> <span class="n">the</span> <span class="n">whiteboard</span> <span class="n">pattern</span>"<span class="p">);</span>
+ <span class="p">}</span>
+<span class="o">//</span>
+<span class="p">}</span>
+</pre></div>
+
+
+<h3 id="scheduling-at-periodic-times">Scheduling at periodic times</h3>
+<p>The following job is executed every ten seconds by setting <em>scheduler.period</em> to <em>10</em>:</p>
+<div class="codehilite"><pre><span class="n">package</span> <span class="n">sling</span><span class="p">.</span><span class="n">docu</span><span class="p">.</span><span class="n">examples</span><span class="p">;</span>
+
+<span class="n">import</span> <span class="n">org</span><span class="p">.</span><span class="n">slf4j</span><span class="p">.</span><span class="n">Logger</span><span class="p">;</span>
+<span class="n">import</span> <span class="n">org</span><span class="p">.</span><span class="n">slf4j</span><span class="p">.</span><span class="n">LoggerFactory</span><span class="p">;</span>
+<span class="n">import</span> <span class="n">org</span><span class="p">.</span><span class="n">apache</span><span class="p">.</span><span class="n">felix</span><span class="p">.</span><span class="n">scr</span><span class="p">.</span><span class="n">annotations</span><span class="p">.</span><span class="n">Component</span><span class="p">;</span>
+<span class="n">import</span> <span class="n">org</span><span class="p">.</span><span class="n">apache</span><span class="p">.</span><span class="n">felix</span><span class="p">.</span><span class="n">scr</span><span class="p">.</span><span class="n">annotations</span><span class="p">.</span><span class="n">Service</span><span class="p">;</span>
+<span class="n">import</span> <span class="n">org</span><span class="p">.</span><span class="n">apache</span><span class="p">.</span><span class="n">felix</span><span class="p">.</span><span class="n">scr</span><span class="p">.</span><span class="n">annotations</span><span class="p">.</span><span class="n">Property</span><span class="p">;</span>
+
+<span class="p">@</span><span class="n">Component</span>
+<span class="p">@</span><span class="n">Service</span><span class="p">(</span><span class="n">value</span> <span class="p">=</span> <span class="n">Runnable</span><span class="p">.</span><span class="n">class</span><span class="p">)</span>
+<span class="p">@</span><span class="n">Property</span><span class="p">(</span> <span class="n">name</span> <span class="p">=</span> "<span class="n">scheduler</span><span class="p">.</span><span class="n">period</span>"<span class="p">,</span> <span class="n">longValue</span> <span class="p">=</span> 10<span class="p">)</span>
+<span class="n">public</span> <span class="n">class</span> <span class="n">ScheduledPeriodicJob</span> <span class="n">implements</span> <span class="n">Runnable</span> <span class="p">{</span>
+
+ <span class="o">/**</span> <span class="n">Default</span> <span class="nb">log</span><span class="p">.</span> <span class="o">*/</span>
+ <span class="n">protected</span> <span class="n">final</span> <span class="n">Logger</span> <span class="nb">log</span> <span class="p">=</span> <span class="n">LoggerFactory</span><span class="p">.</span><span class="n">getLogger</span><span class="p">(</span><span class="n">this</span><span class="p">.</span><span class="n">getClass</span><span class="p">());</span>
+
+ <span class="n">public</span> <span class="n">void</span> <span class="n">run</span><span class="p">()</span> <span class="p">{</span>
+ <span class="nb">log</span><span class="p">.</span><span class="n">info</span><span class="p">(</span>"<span class="n">Executing</span> <span class="n">a</span> <span class="n">perodic</span> <span class="n">job</span> <span class="p">(</span><span class="n">job</span>#2<span class="p">)</span> <span class="n">through</span> <span class="n">the</span> <span class="n">whiteboard</span> <span class="n">pattern</span>"<span class="p">);</span>
+ <span class="p">}</span>
+<span class="o">//</span>
+<span class="p">}</span>
+</pre></div>
+
+
+<h3 id="preventing-concurrent-execution">Preventing concurrent execution</h3>
+<p>By default, jobs can be concurrently executed. To prevent this, set the <em>scheduler.concurrent</em> property to <em>false</em>:</p>
+<div class="codehilite"><pre><span class="p">@</span><span class="n">Property</span><span class="p">(</span><span class="n">name</span><span class="p">=</span>"<span class="n">scheduler</span><span class="p">.</span><span class="n">concurrent</span>"<span class="p">,</span> <span class="n">boolValue</span><span class="p">=</span><span class="n">false</span><span class="p">)</span>
+## <span class="n">The</span> <span class="n">Scheduler</span> <span class="n">API</span>
+</pre></div>
+
+
<p>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 <a href="http://sling.apache.org/apidocs/sling6/org/apache/sling/commons/scheduler/Scheduler.html">javadocs</a>.</p>
<h2 id="examples-of-scheduled-jobs-registered-through-the-scheduler-api">Examples of scheduled jobs registered through the scheduler API</h2>
<p>The following examples show you how to define and schedule a job that is registered through the scheduler api.</p>
@@ -105,7 +160,7 @@
</pre></div>
-<h3 id="scheduling-with-a-cron-expression">Scheduling with a cron expression</h3>
+<h3 id="scheduling-with-a-cron-expression_1">Scheduling with a cron expression</h3>
<p>To execute the job as defined above at 10:15am every Monday, Tuesday, Wednesday, Thursday and Friday, you can use the <em>addJob()</em> method with the following parameters:</p>
<div class="codehilite"><pre><span class="n">String</span> <span class="n">schedulingExpression</span> <span class="p">=</span> "0 15 10 ? <span class="o">*</span> <span class="n">MON</span><span class="o">-</span><span class="n">FRI</span>"<span class="p">;</span>
<span class="n">this</span><span class="p">.</span><span class="n">scheduler</span><span class="p">.</span><span class="n">addJob</span><span class="p">(</span>"<span class="n">myJob</span>"<span class="p">,</span> <span class="n">job</span><span class="p">,</span> <span class="n">null</span><span class="p">,</span> <span class="n">schedulingExpression</span><span class="p">,</span> <span class="n">true</span><span class="p">);</span>
@@ -114,7 +169,7 @@
<p>Refer to http://www.docjar.com/docs/api/org/quartz/CronTrigger.html
to define more scheduling expressions.</p>
-<h3 id="scheduling-at-periodic-times">Scheduling at periodic times</h3>
+<h3 id="scheduling-at-periodic-times_1">Scheduling at periodic times</h3>
<p>To execute the job as defined above every 3 minutes (180 seconds), you can use the <em>addPeriodicJob()</em> method with the following parameters:</p>
<div class="codehilite"><pre><span class="n">long</span> <span class="n">period</span> <span class="p">=</span> 3<span class="o">*</span>60<span class="p">;</span> <span class="o">//</span><span class="n">the</span> <span class="n">period</span> <span class="n">is</span> <span class="n">expressed</span> <span class="n">in</span> <span class="n">seconds</span>
<span class="n">this</span><span class="p">.</span><span class="n">scheduler</span><span class="p">.</span><span class="n">addPeriodicJob</span><span class="p">(</span>"<span class="n">myJob</span>"<span class="p">,</span> <span class="n">job</span><span class="p">,</span> <span class="n">null</span><span class="p">,</span> <span class="n">period</span><span class="p">,</span> <span class="n">true</span><span class="p">);</span>
@@ -143,20 +198,21 @@
<span class="n">import</span> <span class="n">org</span><span class="p">.</span><span class="n">osgi</span><span class="p">.</span><span class="n">service</span><span class="p">.</span><span class="n">component</span><span class="p">.</span><span class="n">ComponentContext</span><span class="p">;</span>
<span class="n">import</span> <span class="n">org</span><span class="p">.</span><span class="n">slf4j</span><span class="p">.</span><span class="n">Logger</span><span class="p">;</span>
<span class="n">import</span> <span class="n">org</span><span class="p">.</span><span class="n">slf4j</span><span class="p">.</span><span class="n">LoggerFactory</span><span class="p">;</span>
+<span class="n">import</span> <span class="n">org</span><span class="p">.</span><span class="n">apache</span><span class="p">.</span><span class="n">felix</span><span class="p">.</span><span class="n">scr</span><span class="p">.</span><span class="n">annotations</span><span class="p">.</span><span class="n">Component</span><span class="p">;</span>
+<span class="n">import</span> <span class="n">org</span><span class="p">.</span><span class="n">apache</span><span class="p">.</span><span class="n">felix</span><span class="p">.</span><span class="n">scr</span><span class="p">.</span><span class="n">annotations</span><span class="p">.</span><span class="n">Reference</span><span class="p">;</span>
<span class="o">/**</span>
<span class="o">*</span> <span class="n">This</span> <span class="n">service</span> <span class="n">executes</span> <span class="n">scheduled</span> <span class="n">jobs</span>
<span class="o">*</span>
- <span class="o">*</span> <span class="p">@</span><span class="n">scr</span><span class="p">.</span><span class="n">component</span> <span class="n">immediate</span><span class="p">=</span>"<span class="n">true</span>" <span class="n">metatype</span><span class="p">=</span>"<span class="n">false</span>"
- <span class="o">*</span>
<span class="o">*/</span>
+<span class="p">@</span><span class="n">Component</span>
<span class="n">public</span> <span class="n">class</span> <span class="n">HelloWorldScheduledService</span> <span class="p">{</span>
<span class="o">/**</span> <span class="n">Default</span> <span class="nb">log</span><span class="p">.</span> <span class="o">*/</span>
<span class="n">protected</span> <span class="n">final</span> <span class="n">Logger</span> <span class="nb">log</span> <span class="p">=</span> <span class="n">LoggerFactory</span><span class="p">.</span><span class="n">getLogger</span><span class="p">(</span><span class="n">this</span><span class="p">.</span><span class="n">getClass</span><span class="p">());</span>
- <span class="o">/**</span> <span class="n">The</span> <span class="n">scheduler</span> <span class="k">for</span> <span class="n">rescheduling</span> <span class="n">jobs</span><span class="p">.</span>
- <span class="o">*</span> <span class="p">@</span><span class="n">scr</span><span class="p">.</span><span class="n">reference</span> <span class="o">*/</span>
+ <span class="o">/**</span> <span class="n">The</span> <span class="n">scheduler</span> <span class="k">for</span> <span class="n">rescheduling</span> <span class="n">jobs</span><span class="p">.</span> <span class="o">*/</span>
+ <span class="p">@</span><span class="n">Reference</span>
<span class="n">private</span> <span class="n">Scheduler</span> <span class="n">scheduler</span><span class="p">;</span>
@@ -216,66 +272,8 @@
<span class="p">}</span>
</pre></div>
-
-
-<h2 id="examples-of-jobs-that-are-scheduled-by-leveraging-the-whiteboard-pattern">Examples of jobs that are scheduled by leveraging the whiteboard pattern</h2>
-<p>The following examples show you how to define and schedule a job by leveraging the whiteboard pattern.</p>
-<h3 id="scheduling-with-a-cron-expression_1">Scheduling with a cron expression</h3>
-<p>The following job is executed every minute by setting <em>scheduler.expression</em> to the cron expression <em>"0 * </em> * <em> ?"</em>:</p>
-<div class="codehilite"><pre><span class="n">package</span> <span class="n">sling</span><span class="p">.</span><span class="n">docu</span><span class="p">.</span><span class="n">examples</span><span class="p">;</span>
-
-<span class="n">import</span> <span class="n">org</span><span class="p">.</span><span class="n">slf4j</span><span class="p">.</span><span class="n">Logger</span><span class="p">;</span>
-<span class="n">import</span> <span class="n">org</span><span class="p">.</span><span class="n">slf4j</span><span class="p">.</span><span class="n">LoggerFactory</span><span class="p">;</span>
-
-<span class="o">/**</span>
- <span class="o">*</span> <span class="p">@</span><span class="n">scr</span><span class="p">.</span><span class="n">component</span>
- <span class="o">*</span> <span class="p">@</span><span class="n">scr</span><span class="p">.</span><span class="n">service</span> <span class="n">interface</span><span class="p">=</span>"<span class="n">java</span><span class="p">.</span><span class="n">lang</span><span class="p">.</span><span class="n">Runnable</span>"
- <span class="o">*</span> <span class="p">@</span><span class="n">scr</span><span class="p">.</span><span class="n">property</span> <span class="n">name</span><span class="p">=</span>"<span class="n">scheduler</span><span class="p">.</span><span class="n">expression</span>" <span class="n">value</span><span class="p">=</span>"0 <span class="o">*</span> <span class="o">*</span> <span class="o">*</span> <span class="o">*</span> ?"
- <span class="o">*/</span>
-<span class="n">public</span> <span class="n">class</span> <span class="n">ScheduledCronJob</span> <span class="n">implements</span> <span class="n">Runnable</span> <span class="p">{</span>
-
- <span class="o">/**</span> <span class="n">Default</span> <span class="nb">log</span><span class="p">.</span> <span class="o">*/</span>
- <span class="n">protected</span> <span class="n">final</span> <span class="n">Logger</span> <span class="nb">log</span> <span class="p">=</span> <span class="n">LoggerFactory</span><span class="p">.</span><span class="n">getLogger</span><span class="p">(</span><span class="n">this</span><span class="p">.</span><span class="n">getClass</span><span class="p">());</span>
-
- <span class="n">public</span> <span class="n">void</span> <span class="n">run</span><span class="p">()</span> <span class="p">{</span>
- <span class="nb">log</span><span class="p">.</span><span class="n">info</span><span class="p">(</span>"<span class="n">Executing</span> <span class="n">a</span> <span class="n">cron</span> <span class="n">job</span> <span class="p">(</span><span class="n">job</span>#1<span class="p">)</span> <span class="n">through</span> <span class="n">the</span> <span class="n">whiteboard</span> <span class="n">pattern</span>"<span class="p">);</span>
- <span class="p">}</span>
-<span class="o">//</span>
-<span class="p">}</span>
-</pre></div>
-
-
-<h3 id="scheduling-at-periodic-times_1">Scheduling at periodic times</h3>
-<p>The following job is executed every ten seconds by setting <em>scheduler.period</em> to <em>10</em>:</p>
-<div class="codehilite"><pre><span class="n">package</span> <span class="n">sling</span><span class="p">.</span><span class="n">docu</span><span class="p">.</span><span class="n">examples</span><span class="p">;</span>
-
-<span class="n">import</span> <span class="n">org</span><span class="p">.</span><span class="n">slf4j</span><span class="p">.</span><span class="n">Logger</span><span class="p">;</span>
-<span class="n">import</span> <span class="n">org</span><span class="p">.</span><span class="n">slf4j</span><span class="p">.</span><span class="n">LoggerFactory</span><span class="p">;</span>
-
-<span class="o">/**</span>
- <span class="o">*</span> <span class="p">@</span><span class="n">scr</span><span class="p">.</span><span class="n">component</span>
- <span class="o">*</span> <span class="p">@</span><span class="n">scr</span><span class="p">.</span><span class="n">service</span> <span class="n">interface</span><span class="p">=</span>"<span class="n">java</span><span class="p">.</span><span class="n">lang</span><span class="p">.</span><span class="n">Runnable</span>"
- <span class="o">*</span> <span class="p">@</span><span class="n">scr</span><span class="p">.</span><span class="n">property</span> <span class="n">name</span><span class="p">=</span>"<span class="n">scheduler</span><span class="p">.</span><span class="n">period</span>" <span class="n">value</span><span class="p">=</span>"10" <span class="n">type</span><span class="p">=</span>"<span class="n">Long</span>"
- <span class="o">*/</span>
-<span class="n">public</span> <span class="n">class</span> <span class="n">ScheduledPeriodicJob</span> <span class="n">implements</span> <span class="n">Runnable</span> <span class="p">{</span>
-
- <span class="o">/**</span> <span class="n">Default</span> <span class="nb">log</span><span class="p">.</span> <span class="o">*/</span>
- <span class="n">protected</span> <span class="n">final</span> <span class="n">Logger</span> <span class="nb">log</span> <span class="p">=</span> <span class="n">LoggerFactory</span><span class="p">.</span><span class="n">getLogger</span><span class="p">(</span><span class="n">this</span><span class="p">.</span><span class="n">getClass</span><span class="p">());</span>
-
- <span class="n">public</span> <span class="n">void</span> <span class="n">run</span><span class="p">()</span> <span class="p">{</span>
- <span class="nb">log</span><span class="p">.</span><span class="n">info</span><span class="p">(</span>"<span class="n">Executing</span> <span class="n">a</span> <span class="n">perodic</span> <span class="n">job</span> <span class="p">(</span><span class="n">job</span>#2<span class="p">)</span> <span class="n">through</span> <span class="n">the</span> <span class="n">whiteboard</span> <span class="n">pattern</span>"<span class="p">);</span>
- <span class="p">}</span>
-<span class="o">//</span>
-<span class="p">}</span>
-</pre></div>
-
-
-<h3 id="preventing-concurrent-execution">Preventing concurrent execution</h3>
-<p>By default, jobs can be concurrently executed. To prevent this, set the <em>scheduler.concurrent</em> property to <em>false</em>:</p>
-<div class="codehilite"><pre><span class="p">@</span><span class="n">scr</span><span class="p">.</span><span class="n">property</span> <span class="n">name</span><span class="p">=</span>"<span class="n">scheduler</span><span class="p">.</span><span class="n">concurrent</span>" <span class="n">value</span><span class="p">=</span>"<span class="n">false</span>" <span class="n">type</span><span class="p">=</span>"<span class="n">Boolean</span>"
-</pre></div>
<div class="timestamp" style="margin-top: 30px; font-size: 80%; text-align: right;">
- Rev. 1499238 by fmeschbe on Wed, 3 Jul 2013 07:39:54 +0000
+ Rev. 1559070 by cziegeler on Fri, 17 Jan 2014 11:05:50 +0000
</div>
<div class="trademarkFooter">
Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project
Modified: websites/staging/sling/trunk/content/site/.htaccess
==============================================================================
--- websites/staging/sling/trunk/content/site/.htaccess (original)
+++ websites/staging/sling/trunk/content/site/.htaccess Fri Jan 17 11:06:01 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