-
Notifications
You must be signed in to change notification settings - Fork 16
ProducerMethod
There are options for sending lambda expressions for execution.
queue.Send((message, workerNotification) => Console.WriteLine(message.MessageId.Id.Value));Creating the queue is pretty straightforward. You'll need to specify the transport you want to use. Unlike the typed-message producer, you do not need to specify the type when creating the queue. Any method producer queue can send any lambda expression.
var queueConnection = new QueueConnection(queueName, connectionString);
using (var queueContainer = new QueueContainer<InitModule>())
{
using (var queue = queueContainer.CreateMethodProducer(queueConnection))
{
...
}
}If you dispose of the container, all queues created from the container will be disposed as well. If you will be sending many expressions over time, you should hang on to the container/queues instead of constantly creating them.
The send commands are thread safe.
Method expressions can be sent in a few different ways.
var result = queue.Send((message, workerNotification) => Console.WriteLine("Hello World"));var data = new AdditionalMessageData();
data.SetDelay(TimeSpan.FromMinutes(1));
var result = queue.Send((message, workerNotification) => Console.WriteLine("Hello World"), data);A collection of expressions with or without additional metadata. Note that this operation is not necessarily atomic
var result = queue.Send(messageList);var result = await queue.SendAsync((message, workerNotification) => Console.WriteLine("Hello World"));All methods return the result of the operation. This includes the following:
- A boolean indicating if an error occurred
- An exception containing the error, if an error occurred.
- Information about the sent message, assuming no errors -The message ID -The correlation ID
Methods that take in a collection of messages return a collection of results. The collection contains a boolean named 'HasErrors' that will indicate if any result failed.
For a complete working example, see SQLServerProducerLinq in the samples repository.
For any issues please use the GitHub issues