mise en place d'un cron sous sdk 3

cancel
Showing results for 
Search instead for 
Did you mean: 
mpavot
Active Member II

mise en place d'un cron sous sdk 3

Bonjour à tous,

Voila je souhaite exécuter un script chaque soir sur mes nœuds user Alfresco.

je sais que je dois faire un cron , mais je ne comprend pas à quoi correspond chaque balise du fichier XML.

De plus je suis sur une achi maven sdk 3 et je ne sais pas ou placer mon script pour qu'il soit déployée au chemin voulu 

voila un bout code que j'ai fait mais il ne fonctionne pas (je sais que value est configuré pour 10 minute) :

<bean id="runScriptResetPassword" class="org.alfresco.repo.action.scheduled.CronScheduledQueryBasedTemplateActionDefinition">
<property name="transactionMode">
<value>UNTIL_FIRST_FAILURE</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="cronExpression">
<value>0 0/10 * * * ?</value>
</property>
<property name="jobName">
<value>resetOldPassword</value>
</property>
<property name="triggerName">
<value>SendMailEveryTenMinutesScheduleTrigger</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="runScriptResetPassword"/>
</property>
<property name="transactionService">
<ref bean="TransactionService"/>
</property>
<property name="runAsUser">
<value>System</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:resetPassword.js"' )\}</value>
</entry>
</map>
</property>
 </bean>
</beans>

2 Replies
ycoulon
Alfresco Employee

Re: mise en place d'un cron sous sdk 3

Bonjour,

A la lecture de votre post j'en déduis que vous suivez cette page : Scheduled Actions 

L'extrait XML que vous avez fournit correspond à la définition d'un bean spring se basant sur la classe CronScheduledQueryBasedTemplateActionDefinition

Votre script resetPassword.js doit se trouver dans le dictionnaire de donnée au vue de la configuration du bean : 

<value>\$\{selectSingleNode('workspace://SpacesStore', 'lucene', 'PATH:"/app:company_home/app:dictionary/app:scripts/cm:resetPassword.js"' )\}</value>

Il n'est donc pas nécessaire de le mettre dans votre projet maven.

Si vous êtes plus à l'aise avec Java vous pouvez également définir des jobs via ce langage : Scheduled Jobs | Alfresco Documentation 

Y.

mpavot
Active Member II

Re: mise en place d'un cron sous sdk 3

Merci Yann de ta réponse

j'ai un peu avancé et commence a bien comprendre le système de cron dans Alfresco.

je pense avoir bien set mon cron mais j'ai une erreur :

 2017-06-16 11:00:20,559 ERROR [quartz.core.JobRunShell] [DefaultScheduler_Worker-2] Job jobGroup_ver.jobA threw an unhandled Exception:
java.lang.ClassCastException: org.alfresco.repo.action.scheduled.SimpleTemplateActionDefinition cannot be cast to org.alfresco.repo.action.executer.ActionExecuter
at org.alfresco.repo.action.scheduled.SimpleTemplateActionDefinition.getAction(SimpleTemplateActionDefinition.java:178)
at org.alfresco.repo.action.scheduled.CronScheduledQueryBasedTemplateActionDefinition.getAction(CronScheduledQueryBasedTemplateActionDefinition.java:282)
at org.alfresco.repo.action.scheduled.AbstractScheduledAction$JobDefinition$1$1.execute(AbstractScheduledAction.java:477)
at org.alfresco.repo.transaction.RetryingTransactionHelper.doInTransaction(RetryingTransactionHelper.java:464)
at org.alfresco.repo.transaction.RetryingTransactionHelper.doInTransaction(RetryingTransactionHelper.java:333)
at org.alfresco.repo.action.scheduled.AbstractScheduledAction$JobDefinition$1.runTransactionalActions(AbstractScheduledAction.java:465)
at org.alfresco.repo.action.scheduled.AbstractScheduledAction$JobDefinition$1.doWork(AbstractScheduledAction.java:417)
at org.alfresco.repo.security.authentication.AuthenticationUtil.runAs(AuthenticationUtil.java:555)
at org.alfresco.repo.action.scheduled.AbstractScheduledAction$JobDefinition.execute(AbstractScheduledAction.java:399)
at org.quartz.core.JobRunShell.run(JobRunShell.java:216)
at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:563)


Merci encore !