Skip to content

alexsuslov/duplicate

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 

Repository files navigation

Example

Pool := &queue.Pool{}
Avoid := &duplicate.Avoid{}

go loop(Pool, Avoid)

func loop(p *queue.Pool, d *duplicate.Avoid) {
  for {
    key, ok := p.Pop().(string)
    if ok {
      ctx, fn := context.WithCancel(context.Background())
      d.Push(key, fn)
      go func() {
        err := Post(ctx, key)
        // retry
        if err!=nil{
          p.Push(key)
          return
        }
        if ctx.Err() == nil {
          d.Remove(key)
        }
      }()
    }
  }
}


func(w http.ResponseWriter, r *http.Request) {
  key := r.URL.Query().Get("key")
  Pool.Push(key)
  w.Write([]byte("done"))
}

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages