Implemented caching for TaskRouter
TaskDispatcher will use non-blocking code ( close #24 ).