docs: def dequeue(self, destination):
          """
          Removes and returns an item from the queue (or C{None} if no items in queue).
  
          @param destination: The queue name (destinationination).
          @type destination: C{str}
  
          @return: The first frame in the specified queue, or C{None} if there are none.
          @rtype: C{stompclient.frame.Frame} 
          """
          session = meta.Session()
  
          try:
  
              selstmt = select(
                  [model.frames_table.c.message_id, model.frames_table.c.frame])
              selstmt = selstmt.where(
                  model.frames_table.c.destination == destination)
              selstmt = selstmt.order_by(
                  model.frames_table.c.queued, model.frames_table.c.sequence)
  
              result = session.execute(selstmt)
  
              first = result.fetchone()
              if not first:
                  return None
  
              delstmt = model.frames_table.delete().where(model.frames_table.c.message_id ==
                                                          first[model.frames_table.c.message_id])
              session.execute(delstmt)
  
              frame = first[model.frames_table.c.frame]
  
          except:
              session.rollback()
              raise
          else:
              session.commit()
              return frame