|
The CVS version of the Toolserver Framework For Python has two more experimental features:
- easy tool-level locking
- timed execution of methods
- queued execution of methods
Timed execution is much like the asynchronous method calling, only you give a time when the call should happen. The timed events are managed by one worker thread from the worker pool. As soon as there are no more timed events, this worker will be freed up, again.
Queued execution is much like timed execution, except the event is triggered as soon as there is a thread available to handle them. All queued events are processed in sequence by one worker thread, so you don't get worker usage explosion if you need to trigger many events that are not time critical. If you would use asynchronous execution, every event would be handled immediately and this would result in many worker threads being occupied. Queued events have a priority - they are processed in the order of first priority, second age. So important events can be pushed to the front, less important events can be delayed.
Tool locking is usefull to secure critical areas in your tool - for example if you write data to the local filesystem. The local filesystem got private storage, too - so you can decide wether files stored should be accessible via HTTP or not.
|