RSQueueClient 1.0.0
dotnet add package RSQueueClient --version 1.0.0
NuGet\Install-Package RSQueueClient -Version 1.0.0
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="RSQueueClient" Version="1.0.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="RSQueueClient" Version="1.0.0" />
<PackageReference Include="RSQueueClient" />
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add RSQueueClient --version 1.0.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: RSQueueClient, 1.0.0"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package RSQueueClient@1.0.0
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=RSQueueClient&version=1.0.0
#tool nuget:?package=RSQueueClient&version=1.0.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
RSQueueClient
.NET client library for RSQueue message queue service.
Installation
Add a reference to the RSQueueClient project or install the NuGet package:
dotnet add package RSQueueClient
Quick Start
using RSQueueClient;
// Create client (without authentication)
using var client = new RSQueueApiClient("http://localhost:4000");
// Or with Basic Authentication
using var client = new RSQueueApiClient("http://localhost:4000", "admin", "password123");
Usage Examples
Health Check
var health = await client.GetHealthAsync();
Console.WriteLine($"Status: {health.Status}");
Console.WriteLine($"Version: {health.Version}");
Console.WriteLine($"Uptime: {health.UptimeSeconds} seconds");
Console.WriteLine($"Active Queues: {health.ActiveQueues}");
Queue Management
Create a Queue
var request = new CreateQueueRequest
{
Name = "my-queue",
VisibilityTimeoutSeconds = 30,
EnableDeduplication = true,
DeduplicationWindowSeconds = 300
};
var queue = await client.CreateQueueAsync(request);
// Or with defaults
var queue = await client.CreateQueueAsync("my-queue");
List Queues
var queues = await client.ListQueuesAsync();
foreach (var queue in queues)
{
Console.WriteLine($"{queue.Name} - Size: {queue.Size}");
}
Get Queue Details
var details = await client.GetQueueDetailsAsync("my-queue");
Console.WriteLine($"Messages pending: {details.MessagesPending}");
Console.WriteLine($"Messages in flight: {details.MessagesInFlight}");
Update Queue Settings
var update = new UpdateQueueRequest
{
VisibilityTimeoutSeconds = 60,
EnableDeduplication = false
};
await client.UpdateQueueSettingsAsync("my-queue", update);
Delete a Queue
await client.DeleteQueueAsync("my-queue");
Purge a Queue
await client.PurgeQueueAsync("my-queue");
Message Operations
Enqueue a Single Message
var response = await client.EnqueueMessageAsync("my-queue", "Hello, World!");
Console.WriteLine($"Message ID: {response.Id}");
Enqueue Batch Messages
var messages = new List<string>
{
"Message 1",
"Message 2",
"Message 3"
};
var batch = await client.EnqueueBatchAsync("my-queue", messages);
Console.WriteLine($"Successful: {batch.Successful}, Failed: {batch.Failed}");
Get Messages (Dequeue)
var messages = await client.GetMessagesAsync("my-queue", count: 5);
foreach (var msg in messages)
{
Console.WriteLine($"ID: {msg.Id}, Content: {msg.Content}");
// Process the message...
// Delete after processing
if (msg.ReceiptHandle.HasValue)
{
await client.DeleteMessageAsync("my-queue", msg.ReceiptHandle.Value);
}
}
Peek Messages (Without Dequeuing)
var messages = await client.PeekMessagesAsync("my-queue", count: 5);
foreach (var msg in messages)
{
Console.WriteLine($"ID: {msg.Id}, Content: {msg.Content}, Status: {msg.Status}");
}
List All Messages
var allMessages = await client.ListAllMessagesAsync("my-queue");
Console.WriteLine($"Total messages: {allMessages.Count}");
Processing Messages
Use the built-in helper to process messages:
await client.ProcessMessagesAsync(
"my-queue",
async (message) =>
{
Console.WriteLine($"Processing: {message.Content}");
// Do your work here...
await Task.Delay(100);
// Return true to delete the message, false to leave it
return true;
},
batchSize: 10
);
Metrics
Get Queue Metrics
var metrics = await client.GetQueueMetricsAsync("my-queue");
Console.WriteLine($"Pending: {metrics.MessagesPending}");
Console.WriteLine($"In flight: {metrics.MessagesInFlight}");
Get Metrics Summary
var summary = await client.GetMetricsSummaryAsync();
Console.WriteLine($"Total enqueued: {summary.MessagesEnqueuedTotal}");
Console.WriteLine($"Total dequeued: {summary.MessagesDequeuedTotal}");
Console.WriteLine($"Duplicates rejected: {summary.DuplicateMessagesRejectedTotal}");
Get Raw Prometheus Metrics
var rawMetrics = await client.GetMetricsAsync();
Console.WriteLine(rawMetrics);
Cancellation Token Support
All async methods support CancellationToken:
var cts = new CancellationTokenSource(TimeSpan.FromSeconds(5));
var health = await client.GetHealthAsync(cts.Token);
License
MIT
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
net10.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.0.0 | 3,765 | 11/25/2025 |