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.
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>
.....
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
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
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
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.
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
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.
Tags
Find what you came for
We want to make your experience in Hyland Connect as valuable as possible, so we put together some helpful links.