Alfresco: Scheduled Jobs
Note: @tommoz has pointed out to me a blog post that I’d never seen before from @Ixxus which is a complete example of writing a scheduled job (spring beans and all). You should really check out their excellent example if you need a full example of writing scheduled jobs for Alfresco.
One of the things that is easy to forget when adding/writing a new scheduled jobs is to wrap your code in a RetryingTransactionHelper _and_ a RunAs. When executing the scheduled job we need to make sure that we provide a transaction in which to perform your custom code and a user to perform the code under.
Example:
public void execute()
{
AuthenticationUtil.runAs(new AuthenticationUtil.RunAsWork<Object>()
{
@Override
public Object doWork()
throws Exception
{
RetryingTransactionCallback<;Object>; txnWork = new RetryingTransactionCallback<Object>()
{
public Object execute()
throws Exception
{
//Add logic here
return null;
}
};
transactionService.getRetryingTransactionHelper().doInTransaction(txnWork, false);
return null;
}
}, user_authority);
}
Hopefully this template will prove usefully to anyone writing a custom scheduled actions.
This post is licensed under CC BY 4.0 by the author.