C# POST请求的脱机处理

C# POST请求的脱机处理,c#,windows-services,scheduled-tasks,offline,C#,Windows Services,Scheduled Tasks,Offline,我正在开发一个应用程序,向.NETWeb服务提交POST请求 当前的实现是立即处理请求并给出响应。在实际部署中,将有大量数据需要处理,因此请求必须脱机处理 可以完成任务的策略是什么 我应该实现Windows服务还是调用应用程序执行所需任务的计划任务。这可能是MSMQ的一个好例子。您的Web服务可以用传入数据填充队列,另一个进程可以读取这些消息并执行必要的处理 以下是MSMQ的良好概述: 如果您有太多数据无法实时处理,我可能会设置该服务以执行以下操作: ProcessRecordViaPost 使

我正在开发一个应用程序,向.NETWeb服务提交POST请求

当前的实现是立即处理请求并给出响应。在实际部署中,将有大量数据需要处理,因此请求必须脱机处理

可以完成任务的策略是什么


我应该实现Windows服务还是调用应用程序执行所需任务的计划任务。

这可能是MSMQ的一个好例子。您的Web服务可以用传入数据填充队列,另一个进程可以读取这些消息并执行必要的处理

以下是MSMQ的良好概述:


如果您有太多数据无法实时处理,我可能会设置该服务以执行以下操作:

ProcessRecordViaPost

  • 使用UniqueID在“Queue”数据库中创建新记录,以及所有其他要处理的信息
  • 立即将UniqueID返回给客户
  • ReadRecordViaGet

  • 检查队列,如果已处理返回数据,如果未返回状态代码(在此之前队列中的项目数?)

  • 我还需要一个windows服务,它不断地从队列中获取最旧的项目,并对其进行处理,然后移动到下一个最旧的项目。

    如果您是作为web服务执行此操作,则需要有某种即时响应,即使只是验证请求是否已成功提交。在此之后,您是否希望服务持续运行以监视请求队列或定期执行以完成请求队列的问题应取决于您需要响应的速度,以及批量处理请求是否有任何好处。@ngroot:对于应用程序,最好不要批量处理请求。事实上,一次只处理一个请求是可取的。另一个问题是,处理完成后需要通过电子邮件通知用户。因此,以后可能需要更改的配置信息很少。因为服务将不断地获取数据,所以将请求保留在数据库上是不明智的?所以,最好使用MSMQ来存储请求。如果它们只被处理和删除,那么是的,一个数据库将是多余的。但是,由于您没有立即将数据传递回,当用户最终返回数据时,您的web服务将如何返回数据?看起来您至少需要存储队列,直到用户发出第二个请求,否?布罗斯:不会有第二个请求。将通过电子邮件通知用户。