class_docstr: An extension for the scheduler to manage queues
  
  This adds the following routes to the scheduler
  
  *  queue_create
  *  queue_release
  *  queue_put
  *  queue_get
  *  queue_size
class_docstr_tok: ["An","extension","for","the","scheduler","to","manage","queues","This","adds","the","following","routes","to","the","scheduler","*","queue_create","*","queue_release","*","queue_put","*","queue_get","*","queue_size"]
code: def future_release(self, name=None, key=None, client=None):
      self.future_refcount[name, key] -= 1
      if self.future_refcount[name, key] == 0:
          self.scheduler.client_releases_keys(
              keys=[key], client="queue-%s" % name
          )
          del self.future_refcount[name, key]
  
imports: from __future__ import annotations
  import asyncio
  import logging
  import uuid
  from collections import defaultdict
  from dask.utils import parse_timedelta
  from distributed.client import Future
  from distributed.utils import wait_for
  from distributed.worker import get_client
label_desc: Use image node_id 4 for calling the QueueExtension obj's underlying member method code with example usage: obj.future_release(name, key, client) without return types