use channel and goroutine to do taskqueue
Merge branch 'feature/taskqueue'

* feature/taskqueue:
  use channel and goroutine to do taskqueue