Return publishing success
This commit is contained in:
parent
7e7fea7010
commit
a84f1241a9
18
queue.go
18
queue.go
|
@ -12,12 +12,20 @@ var (
|
|||
queues = make(map[string]*Queue)
|
||||
)
|
||||
|
||||
func (q *Queue) Push(msg Message) {
|
||||
p := Payload{
|
||||
Queue: q,
|
||||
Message: msg,
|
||||
func (q *Queue) Push(msg Message) bool {
|
||||
var err error
|
||||
|
||||
q.Counter.Write(func(i uint) bool {
|
||||
key := NewKey(q.Name, i)
|
||||
err = storage.Set(key, msg)
|
||||
if err != nil {
|
||||
Error(err, "Failed to write %d bytes to record '%s'", len(msg), key)
|
||||
}
|
||||
Persist(p)
|
||||
|
||||
return (err == nil)
|
||||
})
|
||||
|
||||
return (err == nil)
|
||||
}
|
||||
|
||||
func (q *Queue) TryFetch() (Message, bool) {
|
||||
|
|
|
@ -44,10 +44,15 @@ func PublishHandler(w http.ResponseWriter, r *http.Request) {
|
|||
}
|
||||
|
||||
queueName := r.FormValue("queue")
|
||||
go Register(queueName, msg)
|
||||
ok := Register(queueName, msg)
|
||||
|
||||
if ok {
|
||||
Debug("Published message of %d bytes to queue %s", len(msg), queueName)
|
||||
w.Write([]byte("OK"))
|
||||
} else {
|
||||
Debug("Failed to publish message of %d bytes to queue %s", len(msg), queueName)
|
||||
http.Error(w, "FAIL", 500)
|
||||
}
|
||||
}
|
||||
|
||||
func SubscriptionHandler(w http.ResponseWriter, r *http.Request) {
|
||||
|
|
Loading…
Reference in New Issue