I'm having trouble with events/jobs. I'm trying to set a queue limit of 5
parallel jobs but it instead runs at around 35 jobs.
My properties are:
JobUtil.PROPERTY_JOB_QUEUE_NAME,
"nlp.startnlp"
JobUtil.PROPERTY_JOB_PRIORITY,
JobUtil.JobPriority.NORM
JobUtil.PROPERTY_JOB_PARALLEL,
5
JobUtil.PROPERTY_JOB_RUN_LOCAL,
"true"
JobUtil.PROPERTY_JOB_RETRIES,
5
JobUtil.PROPERTY_JOB_RETRY_DELAY,
30000
Then create the event like:
new Event("bmn/iarpa-metaphor/job/topic/init", props)
and post it with eventAdmin.postEvent
The job is processed by sling's JobUtil.processJob method. The thread is
renamed temporarily, priority set, etc while it's being executed, just as it
should based on JobUtil's processJob method (and the Runnable inside of it)
But it immediately fills up the default thread pool with jobs instead of
running only 5 jobs.
I've been tracing through the sling code but I'm having a hard time figuring
out what's going on. I've only found one place where
JobUtil.PROPERTY_JOB_PARALLEL is read, inside InternalQueueConfiguration.java,
but as far as I can tell the default thread pool doesn't use this…
Rob