-
Notifications
You must be signed in to change notification settings - Fork 1.6k
/
IMessageQueueClient.cs
49 lines (41 loc) · 1.45 KB
/
IMessageQueueClient.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
using System;
namespace ServiceStack.Messaging
{
public interface IMessageQueueClient
: IMessageProducer
{
/// <summary>
/// Publish the specified message into the durable queue @queueName
/// </summary>
void Publish(string queueName, IMessage message);
/// <summary>
/// Publish the specified message into the transient queue @queueName
/// </summary>
void Notify(string queueName, IMessage message);
/// <summary>
/// Synchronous blocking get.
/// </summary>
IMessage<T> Get<T>(string queueName, TimeSpan? timeOut=null);
/// <summary>
/// Non blocking get message
/// </summary>
IMessage<T> GetAsync<T>(string queueName);
/// <summary>
/// Acknowledge the message has been successfully received or processed
/// </summary>
void Ack(IMessage message);
/// <summary>
/// Negative acknowledgement the message was not processed correctly
/// </summary>
void Nak(IMessage message, bool requeue, Exception exception = null);
/// <summary>
/// Create a typed message from a raw MQ Response artefact
/// </summary>
IMessage<T> CreateMessage<T>(object mqResponse);
/// <summary>
/// Create a temporary Queue for Request / Reply
/// </summary>
/// <returns></returns>
string GetTempQueueName();
}
}