C# .NET is in development for v1. Interested in contributing or chatting with us?Get in touch!
.NET - Queue.Send()
Send tasks to a queue.
using Nitric.Sdk;
using Nitric.Sdk.Queue;
class UserRequest
{
public string UserId { get; set; }
public string Message { get; set; }
}
var batchQueue = Nitric.Queue<UserRequest>("batch").With(QueuePermission.Sending);
batchQueue.Send(new UserRequest
{
UserId = "1234",
Message = "Hello!"
});
Nitric.Run();
Parameters
- Name
tasks
- Required
- Required
- Type
- Task<T> | Task<T>[] | T | T[]
- Description
The task or an array of tasks to send to the queue.
- Name
Id
- Optional
- Optional
- Type
- string
- Description
unique id to apply to the task.
- Name
Payload
- Required
- Required
- Type
- T
- Description
payload to send with the task.
- Name
PayloadType
- Optional
- Optional
- Type
- string
- Description
a hint to the type of payload supplied.
Examples
Send a task to a queue
using Nitric.Sdk;
using Nitric.Sdk.Queue;
using System.Collections.Generic;
class UserRequest
{
public string UserId { get; set; }
public string Message { get; set; }
}
var batchQueue = Nitric.Queue<UserRequest>("batch").With(QueuePermission.Sending);
batchQueue.Send(
new Task<UserRequest>
{
Id = "1234",
PayloadType = "user_request",
Payload = new UserRequest
{
UserId = "user_1234",
Message = "Hello!"
}
}
);
Nitric.Run();
Send multiple tasks to a queue
using Nitric.Sdk;
using Nitric.Sdk.Queue;
using System.Collections.Generic;
var batchQueue = Nitric.Queue("batch").With(QueuePermission.Sending);
batchQueue.Send(
new Task[]
{
new UserRequest
{
UserId = "user_1",
Message = "Batch Task 1"
}, new UserRequest
{
UserId = "user_2",
Message = "Batch Task 2"
}
}
);
Nitric.Run();
Dealing with failures
In rare cases when sending tasks to a queue some tasks might fail to be sent. The response from send()
will include an array of any tasks that failed to send. You can process this array to retry or log the error.
var failed = await batchQueue.Send(tasks);
failed.ForEach(failedTask => {
Console.WriteLine(failedTask.ID);
});
Nitric.Run();