fix
This commit is contained in:
		@@ -1,9 +1,13 @@
 | 
			
		||||
package routers
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"bytes"
 | 
			
		||||
	"fmt"
 | 
			
		||||
	"net/http"
 | 
			
		||||
	"os"
 | 
			
		||||
	tasks "queues-go/app/storage/mongo/collections"
 | 
			
		||||
	"sync"
 | 
			
		||||
	"time"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
type TaskResponse struct {
 | 
			
		||||
@@ -18,6 +22,20 @@ type TakeResponse struct {
 | 
			
		||||
 | 
			
		||||
var MutexMap map[string]*sync.Mutex
 | 
			
		||||
 | 
			
		||||
func sendLatency(timestamp time.Time, latency int) error {
 | 
			
		||||
	loc, _ := time.LoadLocation("Europe/Moscow")
 | 
			
		||||
	s := fmt.Sprintf(
 | 
			
		||||
		`{"timestamp":"%s","service":"queues","environment":"%s","name":"latency","count":%s}`,
 | 
			
		||||
		timestamp.In(loc).Format("2006-01-02T15:04:05Z"),
 | 
			
		||||
		os.Getenv("STAGE"),
 | 
			
		||||
		latency,
 | 
			
		||||
	)
 | 
			
		||||
	data := []byte(s)
 | 
			
		||||
	r := bytes.NewReader(data)
 | 
			
		||||
	_, err := http.Post("http://monitoring:1237/api/v1/metrics/increment", "application/json", r)
 | 
			
		||||
	return err
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func Take(r *http.Request) (interface{}, int) {
 | 
			
		||||
	queue := r.Header.Get("queue")
 | 
			
		||||
	mutex, ok := MutexMap[queue]
 | 
			
		||||
@@ -41,6 +59,8 @@ func Take(r *http.Request) (interface{}, int) {
 | 
			
		||||
			Attempt: task.Attempts,
 | 
			
		||||
			Payload: task.Payload,
 | 
			
		||||
		}
 | 
			
		||||
		now := time.Now()
 | 
			
		||||
		go sendLatency(now, int(now.Sub(task.PutAt).Milliseconds()))
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return response, http.StatusOK
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user