gpt4 book ai didi

wcf - 使用 WCF 服务对请求进行排队

转载 作者:行者123 更新时间:2023-12-04 06:08:54 26 4
gpt4 key购买 nike

我有一个 WCF service可以接收几个请求/分钟(或秒),需要将信息写入数据库。我不想同步编写它,而是将这些请求放在服务器上的某种队列中,以便另一个进程可以出现并处理它们。客户端只需要确认已收到请求。我已经阅读了很多关于 MSMQ 的内容和 WCF等等,但似乎 MSMQ您从客户端写入队列而不是 Web 服务,这不是我想要的。

有没有办法在不涉及数据库的 WCF 方法中执行以下操作。可能我还没有掌握MSMQ的概念对。

 public bool ProcessMessage(string message)
{
if(IsValid(message))
return AddToQueue(message);

return false;
}

编辑:我需要在写入队列之前验证消息。

最佳答案

我目前在我创建的应用程序中执行此操作。 WCF 服务作为 IIS 上的 HTTP 服务托管。它接受调用和数据包,我获取该数据,验证它(告诉调用者它是否错误)然后将数据发送到另一个使用 netMSMQ 绑定(bind)的 WCF 服务,然后该服务将最终写入数据库。这样做的好处是它将在一个 MSMQ 上排队,并且绑定(bind)到该 MSMQ 的 WCF 服务一次弹出一条消息并处理它。然后,HTTP WCF 服务可以根据需要处理任意数量的请求,而不必担心合并消息,因为这是 WCF/MSMQ 绑定(bind)服务的工作。这种模式的通用名称是 Bridge 框架。

ETA:第二个服务(MSMQ 绑定(bind)的 WCF 服务)始终作为 Windows 服务运行。它还处理关注点分离。 HTTP 服务验证并且不关心数据库,其他服务处理对数据库的写入。

关于wcf - 使用 WCF 服务对请求进行排队,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8015705/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com