func NewTaskQueueMgr(brokerURI string) (*TaskQueueMgr, error) {
	self := &TaskQueueMgr{
		brokerURI: brokerURI,
		errorChannel: make(chan *amqp.Error),
	}
	err := self.connect()
	if err != nil {
		return nil, err
	}
	go self.brokerReconnector()
	return self, nil
}
/*
NewTaskQueueMgr is a factory function that creates a new instance of the TaskQueueMgr
package celeriac
import (
	"encoding/json"
	"time"
	log "github.com/sirupsen/logrus"
	"github.com/streadway/amqp"
    "strings"
    "crypto/tls"
)
type TaskQueueMgr struct {
	brokerURI	string
	connection *amqp.Connection
	channel    *amqp.Channel
	Monitor    *TaskMonitor
	errorChannel chan *amqp.Error
	closed       bool
}