implement a queue which would kill idle workers

also introduce a config: pool_idle_time, default to 60 seconds