func (q *Queue) SetExpire(sec int) {
	q.expire = sec
}
SetExpire sets visibility timeout for message.
package sqs
import (
	"encoding/json"
	"fmt"
	"sync"
	SDK "github.com/aws/aws-sdk-go/service/sqs"
	"github.com/evalphobia/aws-sdk-go-wrapper/private/pointers"
)
const (
	defaultMessageIDPrefix = "msg_"
	defaultExpireSecond    = 180
	defaultWaitTimeSeconds = 0
)
type Queue struct {
	service *SQS
	name           string
	nameWithPrefix string
	url            *string
	sendSpoolMu sync.Mutex
	sendSpool   []*SDK.SendMessageBatchRequestEntry
	deleteSpoolMu sync.Mutex
	deleteSpool   []*SDK.DeleteMessageBatchRequestEntry
	failedMu     sync.Mutex
	failedSend   []*SDK.BatchResultErrorEntry
	failedDelete []*SDK.BatchResultErrorEntry
	autoDel         bool
	expire          int
	waitTimeSeconds int
}
func NewQueue(svc *SQS, name string, url string) *Queue {
	queueName := svc.prefix + name
	return &Queue{
		service:         svc,
		name:            name,
		nameWithPrefix:  queueName,
		url:             pointers.String(url),
		autoDel:         false,
		expire:          defaultExpireSecond,
		waitTimeSeconds: defaultWaitTimeSeconds,
	}
}
func (q *Queue) AutoDelete(b bool) {
	q.autoDel = b
}