Issue Details (XML | Word | Printable)

Key: GALAXY-334
Type: Improvement Improvement
Status: Closed Closed
Resolution: Fixed
Priority: Major Major
Assignee: Andrew Perepelytsya
Reporter: Andrew Perepelytsya
Votes: 0
Watchers: 0
Operations

If you were logged in you would be able to see more operations.
Galaxy

Implement asynchronous events support

Created: 21/Jul/08 12:32 PM   Updated: 22/Jul/08 12:53 PM
Component/s: Core
Affects Version/s: 1.5-RC
Fix Version/s: 1.5-RC

Time Tracking:
Not Specified

Issue Links:
Related

Labels:
User impact: Low
Affects Docs: Yes


 Description  « Hide
At the moment events are fired synchronously. Certain times, a user listener may choose to execute asynchronously. Provide an easy-to-configure means to flag async execution for the user, and also a throttling mechanism in Galaxy to prevent resource drain under load.

Implementation notes:

  1. The user marks an @OnEvent method with an extra @Async annotation, optionally accepting a timeout.
  2. DefaultEventManager's proxy listeners additionally inspect entry-point methods for the @Async annotation and fire the event in a new thread
  3. DefaultEventManager will have a org.springframework.core.task.TaskExecutor optionally injected to provide for performance tuning. A default implementation will be available if none injected (like org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor). See http://static.springframework.org/spring/docs/2.0.x/reference/scheduling.html for reference.


 All   Comments   Work Log   Change History   Transitions   FishEye      Sort Order: Ascending order - Click to sort in descending order
Andrew Perepelytsya added a comment - 22/Jul/08 12:51 PM
Done