Handling long running asynchronous jobs on RTC server
What techniques can I use to handle long running asynchronous jobs that are triggered from within a Followup action (e.g. Work Item Save Operation Participant) on the RTC server. These jobs/tasks do not need to hold up the operation itself and the guidelines for Operation Participants state that long running steps should not be called.
In separate threads, it was advised to use Eclipse Jobs in an RTC Eclipse client to do heavy processing. Is there a similar technique that can be used on RTC Server? The technique should allow a safe mechanism to invoke and pass parameters from the Followup action.
FYI: If interested the processing I am planning to do is described in another topic (http://jazz.net/forums/viewtopic.php?t=9634)
Thanks,
Samit
In separate threads, it was advised to use Eclipse Jobs in an RTC Eclipse client to do heavy processing. Is there a similar technique that can be used on RTC Server? The technique should allow a safe mechanism to invoke and pass parameters from the Followup action.
FYI: If interested the processing I am planning to do is described in another topic (http://jazz.net/forums/viewtopic.php?t=9634)
Thanks,
Samit
One answer
What techniques can I use to handle long running asynchronous jobs that are triggered from within a Followup action (e.g. Work Item Save Operation Participant) on the RTC server. These jobs/tasks do not need to hold up the operation itself and the guidelines for Operation Participants state that long running steps should not be called.
In separate threads, it was advised to use Eclipse Jobs in an RTC Eclipse client to do heavy processing. Is there a similar technique that can be used on RTC Server? The technique should allow a safe mechanism to invoke and pass parameters from the Followup action.
FYI: If interested the processing I am planning to do is described in another topic (http://jazz.net/forums/viewtopic.php?t=9634)
Thanks,
Samit
You can define a postTransaction asynchronous task that you can schedule in your follow up, to perform the work at a time after the operation complete. This is a repository extension point. You subclass
AbstractPostOutermostTransactionTask and implement IPostOutermostTransactionTask, and schedule your task using ITransactionService#executeTaskAfterCurrentOutermostTransaction().
Hope this helps,
John Camelon
SCM Server