查询多个服务器

时间:2009-11-30 08:18:02

标签: file

我正在构建一个需要查询1到n个文件服务器的Web服务,并因此接收多个文件。这样做有没有人有个好主意? Thread会做得好吗? 如果与某些服务器的连接花费的时间比其他服务器长?我怎么知道我是否真的拥有所有查询过的文件?

谢谢

1 个答案:

答案 0 :(得分:1)

你的问题很通用,所以我的答案也是如此,无论如何我希望它会有用。

我想说你有两个选择:

  1. 使用异步模型。您打开与N个文件服务器的连接,并设置一个回调(或事件),只要收到来自一个服务器的数据,就会触发(通常这些回调将在新线程中调用,但请查看工作框架的文档) )。您从传递给回调/事件的数据中获取连接标识符,并更新相应的文件。

  2. 使用同步轮询模型。打开与N个文件服务器的连接,然后输入一个循环,在该循环中轮询每个连接以获取新数据;当新数据可用时,您将更新相应的文件。完全下载所有文件后退出循环。

  3. 根据您知道所有文件何时完成的方式,没有自动方式。您需要建立一个由您和服务器都知道的约定,以了解如何知道文件已完全发送。选项包括:服务器在文件完成时关闭连接(不太安全,因为连接可能意外关闭),服务器在文件内容之前发送文件大小,文件末尾由特殊字符序列发出信号(这对于通常不会出现文件序列末尾字节的文本文件效果更好。)