fix
This commit is contained in:
		@@ -1,11 +1,8 @@
 | 
			
		||||
package routers
 | 
			
		||||
 | 
			
		||||
import (
 | 
			
		||||
	"fmt"
 | 
			
		||||
	"net/http"
 | 
			
		||||
	tasks "queues-go/app/storage/mongo/collections"
 | 
			
		||||
	"queues-go/app/storage/redis"
 | 
			
		||||
	"time"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
type TaskResponse struct {
 | 
			
		||||
@@ -20,17 +17,17 @@ type TakeResponse struct {
 | 
			
		||||
 | 
			
		||||
func Take(r *http.Request) (interface{}, int) {
 | 
			
		||||
	queue := r.Header.Get("queue")
 | 
			
		||||
	mutex := redis.Sync.NewMutex(fmt.Sprintf("lock_queues_%s", queue))
 | 
			
		||||
	for {
 | 
			
		||||
		err := mutex.Lock()
 | 
			
		||||
		if err != nil {
 | 
			
		||||
			time.Sleep(time.Millisecond * 5)
 | 
			
		||||
		} else {
 | 
			
		||||
			break
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	// mutex := redis.Sync.NewMutex(fmt.Sprintf("lock_queues_%s", queue))
 | 
			
		||||
	// for {
 | 
			
		||||
	// 	err := mutex.Lock()
 | 
			
		||||
	// 	if err != nil {
 | 
			
		||||
	// 		time.Sleep(time.Millisecond * 5)
 | 
			
		||||
	// 	} else {
 | 
			
		||||
	// 		break
 | 
			
		||||
	// 	}
 | 
			
		||||
	// }
 | 
			
		||||
	task, err := tasks.Take(queue)
 | 
			
		||||
	mutex.Unlock()
 | 
			
		||||
	// mutex.Unlock()
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return nil, http.StatusInternalServerError
 | 
			
		||||
	}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user