2010-08-05 37 views
0

我希望推出SS服务代理,Service Broker的设计

我有一个远程数据库的订单和本地处理数据库,该数据库的处理上的所有活动已按顺序发生,这似乎是一个完美的工作Service Broker!

我已经建立了基础架构,我可以发送和接收消息,现在我正在查看处理的设计。正如我所说的,一个订单的所有流程都需要按顺序完成,所以我会把它们放在一个对话中。

其中一个进程是对外部平面文件数据的请求,然后等待(可能有几天),然后在返回时导入并处理该文件。我如何处理一半的任务,然后在处理另一半之前等待平面文件返回。

我有一些想法,但我敢肯定,我错过了一招地方

1)写入所有队列中的项目,以一个状态表和使用状态值 - 似乎去掉一些SSSB的灵活性和添加任务

2)的另一层保留交易开放,直到我们得到的数据备份 - 不理想

3)具有平面文件导入任务不断轮询文件出现 - 这似乎效率不高

管理这个工作流程的最有效方式是什么? 在此先感谢

+1

请阅读[常见问题](http://stackoverflow.com/faq/),并了解标签的含义。你的单词之间需要连字符。 – 2010-08-05 07:22:06

回答

0

在我看来,它就像责任链。据我所知,我们有以下工作流程。

1.)消息处理。

2.)等待外部文件,现在这可能是一个繁忙的等待,或者如果外部数据为您提供通知,那么我们实际上可以非轮询方式进行。

3.)一旦收到数据,然后处理数据。

所以我的建议是每个部分使用3个不同的队列,一个完成后它会转发或将新消息放入链接队列中。

我假设,一个订单处理不会中断另一个订单处理。

我想MSMQ与Windows Sequential工作流,也可能是这项任务的候选人。

+0

谢谢,我可以看到它是如何工作的 – liam 2010-08-05 11:57:26