def METHOD_NAME(self, messageType, messagePayload, waitForAckFlag=True):
    try:
        if waitForAckFlag or self.emitMessageQueue.empty():
            self.emitMessageQueue.METHOD_NAME((messageType, messagePayload, waitForAckFlag), timeout=1)
        else:
            # if not waitForAck and queue not empty then put message at beginning of queue
            #  (other messages in queue will be retried and ack'd later)
            self.emitMessageQueue.queue.appendleft((messageType, messagePayload, waitForAckFlag))
            if hasattr(self.emitMessageQueue, 'getters') and self.emitMessageQueue.getters:
                self.emitMessageQueue._schedule_unlock()  #pylint: disable=protected-access
            # notify queue-worker thread to send message immediately
            self.ackNotifyEventObj.set()
    except Exception as ex:
        self.logger.error("SendAckQueue 'put' error ('{0}'); msg: '{1}': {2}".\
                     format(ex, messageType, messagePayload))