On Tue, Nov 24, 2015 at 5:18 PM, Roll, Kevin <kevin-r...@idexx.com> wrote:
>
> I have implemented a job as described here:
>
> https://sling.apache.org/documentation/bundles/apache-sling-eventing-and-job-handling.html
>
> @Component(immediate = true)
> @Service(value = JobConsumer.class)
> @Property(name = JobConsumer.PROPERTY_TOPICS, value = 
> ImageManagerUploadJob.JOB_TOPIC)
> public final class ImageManagerUploadJob implements JobConsumer
> {
>
> I wish to have this Job handled by a custom queue that processes jobs 
> sequentially, i.e. on a single thread. Forgive my densitude but I'm not 
> understanding how/where to apply the properties given on that documentation 
> page. It sounds like I define a queue and then associate the job with it? I 
> haven't been able to find an example of this. I'd like this all to be in code 
> so it always works without tinkering with stuff in the OSGi container. Thanks!
>

You need to create a new configuration from the factory-style
configuration "Apache Sling Job Queue Configuration"
(org.apache.sling.event.jobs.QueueConfiguration) to create a new queue
that has the desired topic(s) associated to it to have your jobs be
processed within that queue and its configuration parameters.

You could possibly have this configuration in "code" by either of
1) Accessing the org.osgi.service.cm.ConfigurationAdmin service and
creating a configuration via this mechanism, such as in a
BundleActivator .
2) Utilizing Sling's JCR Content Loader [1] and JCR Installer Provider
[2] mechanisms to have a sling:OsgiConfig content node be
automatically created & installed when the jar bundle starts.

There may be other possible routes depending on if other 3rd
party/external plugins/frameworks are within your Sling instance.

[1] 
https://sling.apache.org/documentation/bundles/content-loading-jcr-contentloader.html
[2] https://sling.apache.org/documentation/bundles/jcr-installer-provider.html

Regards,
Steven

Reply via email to