Logiciel / bibliothèque de mise en file d’attente des tâches pour Golang

Kokizzu

Logiciel / bibliothèque de mise en file d’attente des tâches pour Golang


Quels sont les logiciels / bibliothèques de mise en file d’attente pouvant être utilisés à partir du langage de programmation Go ?

Lorsque j’utilise Ruby , j’utilise habituellement Sidekiq .

Réponses


 Vojtech Vitek

Découvrez Disque , la file d’attente de priorité de travail distribuée persistante de l’auteur de Redis. Il existe plusieurs clients Golang pour Disque, par exemple:

  • https://github.com/goware/disque

     import ( "github.com/goware/disque" ) func producer() { // Connect to Disque pool. jobs, _ := disque.New("127.0.0.1:7711") // Accepts more arguments. defer jobs.Close() // Enqueue three jobs with different priorities. job1, _ := jobs.Add(data1, "high") job2, _ := jobs.Add(data2, "low") job3, _ := jobs.Add(data3, "urgent") // Block until job3 is done. jobs.Wait(job3) } func consumer() { // Connect to Disque pool. jobs, _ := disque.New("127.0.0.1:7711") // Accepts more arguments. defer jobs.Close() for { // Get job from highest priority queue possible. Blocks by default. job, _ := jobs.Get("urgent", "high", "low") // Left-to-right priority. // Do some hard work with the job data. if err := Process(job.Data); err != nil { // Failed. Re-queue the job. jobs.Nack(job) } // Acknowledge (dequeue) the job. jobs.Ack(job) } } 
  • https://github.com/EverythingMe/go-disque

  • https://github.com/zencoder/disque-go


 Kokizzu

RedisMQ est une implémentation de file d’attente de messages atomique rapide et persistante qui utilise redis comme moteur de stockage écrit en go. Il utilise des commandes de liste atomique pour garantir que les messages ne sont livrés qu’une seule fois dans le bon ordre sans être perdus par les plantages des consommateurs.

Celui-ci semble assez facile à utiliser.

 

/, #de, #en, #pour, bibliothèque, d’attente, des, file, Golang, Logiciel, mise, tâches

 

elle.fr

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *