scheduled job , queryTemplate

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-31-2016 04:14 AM
Hi, guys.
I need a help
i try to make simple scheduled job, which will run script. I want to run that script only once at every 10 minutes.
I checked tutorial and some articles here, i found out that query template should be like below
<property name="queryTemplate">
<value>PATH:"/app:company_home"</value>
</property>
My job starts, works, but it runs 3 times script
016-10-31 11:10:00,304 DEBUG [org.alfresco.repo.jscript.ScriptLogger] [DefaultScheduler_Worker-6] ====== start wf====
2016-10-31 11:10:00,307 DEBUG [org.alfresco.repo.jscript.ScriptLogger] [DefaultScheduler_Worker-10] ====== start wf====
2016-10-31 11:10:00,285 DEBUG [org.alfresco.repo.jscript.ScriptLogger] [DefaultScheduler_Worker-8] ====== start wf====
What is wrong? I can not realised that.
Please help.
- Labels:
-
Archive
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-31-2016 09:25 AM
Please try to set transactionMode to ONE_TRANSACTION in you bean definition
<property name="transactionMode">
<value>ONE_TRANSACTION</value>
</property>
<property name="searchService">
<ref bean="SearchService"/>
</property>
<property name="templateService">
<ref bean="TemplateService"/>
</property>
.....

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-31-2016 10:52 AM
Hi)) thank you for your reply, but <value>ONE_TRANSACTION</value> doesn't work.
definition is :
<bean id="runScriptExpireWorkflow" class="org.alfresco.repo.action.scheduled.CronScheduledQueryBasedTemplateActionDefinition">
<property name="transactionMode">
<value>ONE_TRANSACTION</value>
</property>
<property name="compensatingActionMode">
<value>IGNORE</value>
</property>
<property name="searchService">
<ref bean="SearchService"/>
</property>
<property name="templateService">
<ref bean="TemplateService"/>
</property>
<property name="queryLanguage">
<value>lucene</value>
</property>
<property name="stores">
<list>
<value>workspace://SpacesStore</value>
</list>
</property>
<property name="queryTemplate">
<value>PATH:"/app:company_home"</value>
</property>
<property name="cronExpression">
<value>0 0/1 * * * ? </value>
</property>
<property name="jobName">
<value>jobD</value>
</property>
<property name="jobGroup">
<value>jobGroup</value>
</property>
<property name="triggerName">
<value>triggerD</value>
</property>
<property name="triggerGroup">
<value>triggerGroup</value>
</property>
<property name="scheduler">
<ref bean="schedulerFactory"/>
</property>
<property name="actionService">
<ref bean="ActionService"/>
</property>
<property name="templateActionModelFactory">
<ref bean="templateActionModelFactory"/>
</property>
<property name="templateActionDefinition">
<ref bean="ScriptExpireWorkflowAction"/> <!-- This is name of the action (bean SimpleTemplateActionDefinition) that gets run -->
</property>
<property name="transactionService">
<ref bean="TransactionService"/>
</property>
<property name="runAsUser">
<value>System</value>
</property>
</bean>
and job runs js script, in which: logger.log(document.properties.name);
and in the log file:
2016-10-31 17:49:00,308 DEBUG [org.alfresco.repo.jscript.ScriptLogger] [DefaultScheduler_Worker-3] Company Home
2016-10-31 17:49:00,225 DEBUG [org.alfresco.repo.jscript.ScriptLogger] [DefaultScheduler_Worker-5] Company Home
2016-10-31 17:49:00,326 DEBUG [org.alfresco.repo.jscript.ScriptLogger] [DefaultScheduler_Worker-3] Company Home
when I tried run workflow by that job, I had 3 instances of the workflow, the same
Really, I do not know what is going
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-31-2016 09:15 PM
Could you please turn on scheduled action debug log to see what is going on
log4j.logger.org.alfresco.repo.action.scheduled.CronScheduledQueryBasedTemplateActionDefinition=DEBUG

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
11-01-2016 03:42 AM
Hello) I put this logger
log4j.logger.org.alfresco.repo.action.scheduled.CronScheduledQueryBasedTemplateActionDefinition=DEBUG
into
..tomcat/webapps/alfresco/WEB-INF/classes/log4j.properties
but i do not watch anything corresponding with CronScheduledQueryBasedTemplateActionDefinition
i have only that in alfresco.log after loading
2016-11-01 10:29:53,485 DEBUG [org.alfresco.repo.jscript.ScriptLogger] [DefaultScheduler_Worker-8] Company Home
2016-11-01 10:29:53,485 DEBUG [org.alfresco.repo.jscript.ScriptLogger] [DefaultScheduler_Worker-1] Company Home
2016-11-01 10:32:00,625 DEBUG [org.alfresco.repo.jscript.ScriptLogger] [DefaultScheduler_Worker-8] Company Home
2016-11-01 10:32:00,628 DEBUG [org.alfresco.repo.jscript.ScriptLogger] [DefaultScheduler_Worker-4] Company Home
2016-11-01 10:32:00,678 DEBUG [org.alfresco.repo.jscript.ScriptLogger] [DefaultScheduler_Worker-2] Company Home
2016-11-01 10:34:00,203 DEBUG [org.alfresco.repo.jscript.ScriptLogger] [DefaultScheduler_Worker-4] Company Home
2016-11-01 10:34:00,235 DEBUG [org.alfresco.repo.jscript.ScriptLogger] [DefaultScheduler_Worker-6] Company Home
2016-11-01 10:34:00,299 DEBUG [org.alfresco.repo.jscript.ScriptLogger] [DefaultScheduler_Worker-2] Company Home
2016-11-01 10:36:00,569 DEBUG [org.alfresco.repo.jscript.ScriptLogger] [DefaultScheduler_Worker-1] Company Home
2016-11-01 10:36:00,565 DEBUG [org.alfresco.repo.jscript.ScriptLogger] [DefaultScheduler_Worker-3] Company Home
2016-11-01 10:36:00,561 DEBUG [org.alfresco.repo.jscript.ScriptLogger] [DefaultScheduler_Worker-9] Company Home
2016-11-01 10:38:00,280 DEBUG [org.alfresco.repo.jscript.ScriptLogger] [DefaultScheduler_Worker-7] Company Home
2016-11-01 10:38:00,267 DEBUG [org.alfresco.repo.jscript.ScriptLogger] [DefaultScheduler_Worker-1] Company Home
2016-11-01 10:38:00,263 DEBUG [org.alfresco.repo.jscript.ScriptLogger] [DefaultScheduler_Worker-2] Company Home
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
11-01-2016 03:01 PM
Frequency at which your job run depends on cron expression mentioned in configuration
<property name="cronExpression">
<value>0 0/1 * * * ? </value>
</property>
According to your requirement it should be changed as follow.
<property name="cronExpression">
<value>“0 0/10 * * * ?</value>
</property>
restart your server after above change.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
11-02-2016 03:16 AM
Hi) thank you)
but main problem is not cron expression. 1, 2, 10 minutes - doesn't matter.
Look in the log - one job, one script, in the script one string logger.log(space.properties.name);
but three times runs at the same time. How it possible?
2016-11-01 10:38:00,280 DEBUG [org.alfresco.repo.jscript.ScriptLogger] [DefaultScheduler_Worker-7] Company Home
2016-11-01 10:38:00,267 DEBUG [org.alfresco.repo.jscript.ScriptLogger] [DefaultScheduler_Worker-1] Company Home
2016-11-01 10:38:00,263 DEBUG [org.alfresco.repo.jscript.ScriptLogger] [DefaultScheduler_Worker-2] Company Home
My job definition is:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<!--
Define the model factory used to generate object models suitable for use with freemarker templates.
-->
<bean id="templateActionModelFactory" class="org.alfresco.repo.action.scheduled.FreeMarkerWithLuceneExtensionsModelFactory">
<property name="serviceRegistry">
<ref bean="ServiceRegistry"/>
</property>
</bean>
<bean id="ScriptExpireWorkflowAction" class="org.alfresco.repo.action.scheduled.SimpleTemplateActionDefinition">
<property name="actionName">
<value>script</value>
</property>
<property name="parameterTemplates">
<map>
<entry>
<key>
<value>script-ref</value>
</key>
<value>\$\{selectSingleNode('workspace://SpacesStore', 'lucene', 'PATH:"/app:company_home/app:dictionary/app:scripts/cm:expire-wf-start1.js"' )\}</value>
</entry>
</map>
</property>
<property name="templateActionModelFactory">
<ref bean="templateActionModelFactory"/>
</property>
<property name="dictionaryService">
<ref bean="DictionaryService"/>
</property>
<property name="actionService">
<ref bean="ActionService"/>
</property>
<property name="templateService">
<ref bean="TemplateService"/>
</property>
</bean>
<bean id="runScriptExpireWorkflow" class="org.alfresco.repo.action.scheduled.CronScheduledQueryBasedTemplateActionDefinition">
<property name="transactionMode">
<value>ONE_TRANSACTION</value>
</property>
<property name="compensatingActionMode">
<value>IGNORE</value>
</property>
<property name="searchService">
<ref bean="SearchService"/>
</property>
<property name="templateService">
<ref bean="TemplateService"/>
</property>
<property name="queryLanguage">
<value>lucene</value>
</property>
<property name="stores">
<list>
<value>workspace://SpacesStore</value>
</list>
</property>
<property name="queryTemplate">
<value>PATH:"/app:company_home"</value>
</property>
<property name="cronExpression">
<value>0 0/10 * * * ? </value>
</property>
<property name="jobName">
<value>jobD</value>
</property>
<property name="jobGroup">
<value>jobGroup</value>
</property>
<property name="triggerName">
<value>triggerD</value>
</property>
<property name="triggerGroup">
<value>triggerGroup</value>
</property>
<property name="scheduler">
<ref bean="schedulerFactory"/>
</property>
<property name="actionService">
<ref bean="ActionService"/>
</property>
<property name="templateActionModelFactory">
<ref bean="templateActionModelFactory"/>
</property>
<property name="templateActionDefinition">
<ref bean="ScriptExpireWorkflowAction"/> <!-- This is name of the action (bean SimpleTemplateActionDefinition) that gets run -->
</property>
<property name="transactionService">
<ref bean="TransactionService"/>
</property>
<property name="runAsUser">
<value>System</value>
</property>
</bean>
</beans>
Just right now i changed cron expression as you advised (10 minutes) and I have the same picture:
every ten minutes starts my job, but not once! three times!!!!
2016-11-02 09:50:00,772 DEBUG [org.alfresco.repo.jscript.ScriptLogger] [DefaultScheduler_Worker-9] Company Home
2016-11-02 09:50:00,768 DEBUG [org.alfresco.repo.jscript.ScriptLogger] [DefaultScheduler_Worker-4] Company Home
2016-11-02 09:50:02,824 DEBUG [org.alfresco.repo.jscript.ScriptLogger] [DefaultScheduler_Worker-10] Company Home
2016-11-02 10:00:11,028 DEBUG [org.alfresco.repo.jscript.ScriptLogger] [DefaultScheduler_Worker-1] Company Home
2016-11-02 10:00:11,841 DEBUG [org.alfresco.repo.jscript.ScriptLogger] [DefaultScheduler_Worker-5] Company Home
2016-11-02 10:00:12,393 DEBUG [org.alfresco.repo.jscript.ScriptLogger] [DefaultScheduler_Worker-4] Company Home
2016-11-02 10:10:00,593 DEBUG [org.alfresco.repo.jscript.ScriptLogger] [DefaultScheduler_Worker-6] Company Home
2016-11-02 10:10:00,588 DEBUG [org.alfresco.repo.jscript.ScriptLogger] [DefaultScheduler_Worker-2] Company Home
2016-11-02 10:10:00,625 DEBUG [org.alfresco.repo.jscript.ScriptLogger] [DefaultScheduler_Worker-10] Company Home
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
02-03-2017 06:29 AM
Hi,
<bean id="customJobTrigger" class="org.alfresco.util.CronTriggerBean"> <property name="jobDetail"> <ref bean="customJobDetail" /> </property> <property name="scheduler"> <ref bean="schedulerFactory" /> </property> <property name="cronExpression"> <value>cronExpression</value> </property> </bean> <bean id="customJobDetail" class="org.springframework.scheduling.quartz.JobDetailBean"> <property name="jobClass"> <value>CustomJobProcessor </value> </property> </bean>
Using This you can run that cronjob only once when you wanted.
