2011-11-26 141 views
2

我有一个WPF应用程序,它将消息发送到Amazon SQS。亚马逊SQS监听器

在接收端,我可以接收来自亚马逊队列的消息&做进一步处理。接收侧代码示例是这样的:

ReceiveMessageRequest receivemsgRequest = new ReceiveMessageRequest(); 
receivemsgRequest.QueueUrl = queueUrl; 
ReceiveMessageResponse receivemsgResp = sqs.ReceiveMessage(receivemsgRequest); 
if (receivemsgResp.IsSetReceiveMessageResult()) 
{ 
    Console.WriteLine("Messages are : "); 
    ReceiveMessageResult rcvMsgResult = receivemsgResp.ReceiveMessageResult; 
    foreach (Message msg in rcvMsgResult.Message) 
    { 
     Console.WriteLine("Message - " + msg.Body.ToString()); 
    } 
} 

现在我想在接收侧的服务,以保持上运行的上述代码,以检查是否有存在于队列中的任何消息。 Windows服务(WCF)会执行这项任务吗?还是有更好的方法来做到这一点?

回答

1

SQS是基于轮询的,这意味着您必须专门轮询它并查看是否有新消息。

您可以编写一个始终在后台运行的Windows服务,轮询队列并执行必要的操作。