using an async queue to handle larger numbers of keys