A simple .Net client for the Disque in-memory distributed queue https://github.com/antirez/disque
Disque is ongoing experiment to build a distributed, in memory, message broker. Its goal is to capture the essence of the "Redis as a jobs queue" use case, which is usually implemented using blocking list operations, and move it into an ad-hoc, self-contained, scalable, and fault tolerant design, with simple to understand properties and guarantees, but still resembling Redis in terms of simplicity, performances, and implementation as a C non-blocking networked server.
Installation
NuGet - Disque.Net
Install-Package Disque.Net
- Ping
- Info
- Info by Section
- AddJob
- AddJob with Parameters
- GetJob
- GetJob with Parameters
- Ackjob
- Qlen
- Qpeek
- DelJob
- Dequeue
- Enqueue
- Fastack
- Show
- Working
var q = new DisqueClient(new Uri("disque://192.168.59.103:7711"));
string pong = q.Ping();
var q = new DisqueClient(new Uri("disque://192.168.59.103:7711"));
string info = q.Info();
var q = new DisqueClient(new Uri("disque://192.168.59.103:7711"));
string info = q.Info("server");
var q = new DisqueClient(new Uri("disque://192.168.59.103:7711"));
string jobId = q.AddJob("myqueue", "message", 10);
var q = new DisqueClient(new Uri("disque://192.168.59.103:7711"));
JobParams jobParams = new JobParams
{
Replicate = 1,
Retry = 10,
Ttl = 20,
Maxlen = 10,
Delay = 10,
Async = true
};
string jobId = q.AddJob("myqueue", "message", 10, jobParams);
var q = new DisqueClient(new Uri("disque://192.168.59.103:7711"));
List<Job> jobs = q.GetJob("myqueue");
var q = new DisqueClient(new Uri("disque://192.168.59.103:7711"));
List<Job> jobs = q.GetJob(100, 2, "myqueue");
var q = new DisqueClient(new Uri("disque://192.168.59.103:7711"));
string jobId = q.AddJob("myqueue", "message", 10);
long count = q.Ackjob(jobId);
var q = new DisqueClient(new Uri("disque://192.168.59.103:7711"));
long qlen = q.Qlen("myqueue");
var q = new DisqueClient(new Uri("disque://192.168.59.103:7711"));
List<Job> jobs = q.Qpeek("myqueue", 2);
var q = new DisqueClient(new Uri("disque://192.168.59.103:7711"));
string jobId = q.AddJob("myqueue", "testJob", 10);
long count = q.DelJob(jobId);
var q = new DisqueClient(new Uri("disque://192.168.59.103:7711"));
string jobId = q.AddJob("myqueue", "testJob", 10);
long count = q.Dequeue(jobId);
var q = new DisqueClient(new Uri("disque://192.168.59.103:7711"));
string jobId = q.AddJob("myqueue", "testJob", 10);
long count = q.Enqueue(jobId);
var q = new DisqueClient(new Uri("disque://192.168.59.103:7711"));
string jobId = q.AddJob("fastack", "message", 10);
long count = q.Fastack(jobId);
var q = new DisqueClient(new Uri("disque://192.168.59.103:7711"));
string jobId = q.AddJob("myqueue", "testJob", 10);
JobInfo info = q.Show(jobId);
var q = new DisqueClient(new Uri("disque://192.168.59.103:7711"));
String jobId = q.AddJob("myqueue", "testJob", 10);
long secs = q.Working(jobId);
If you encounter a bug, performance issue, or malfunction, please add an Issue with steps on how to reproduce the problem.
- Async methods
Code and documentation are available according to the MIT License (see LICENSE)