0

我有一个文本文件,其中包含大约 100,000 条标识符记录。

我必须阅读所有记录,我向 Web 服务请求的每条记录并从 Web 服务接收结果,我将结果写入另一个文件。

我对两种解决方案感到困惑: - 将标识符文件读取到标识符列表,迭代此列表,调用 Web 服务,.... - 读取每一行的标识符行,调用 Web 服务,.....

您认为哪种解决方案会更好?程序会做的更快吗?

谢谢大家。

4

1 回答 1

1

正如 Dukeling 所说,使用不同的线程来读取文件、发送请求和写入文件可以提高程序的速度,而不是您提出的单线程解决方案。

我建议您开始对 Web 服务使用异步调用。您拨打电话,但不等待响应(您在回调中处理响应)。当您对 Web 服务进行大量并行调用时(如您所愿),这会释放主机上的一些 I/O 线程,并且有时可以提高处理请求的速率/时间。然后你可以有一个线程从文件中读取,启动异步调用并重复。在回调函数上,您实现写入文件。您应该在此级别实现一个逻辑,以确保您的响应以正确的顺序编写。

另一方面,为每条记录调用 Web 服务可能过于冗长。我会建议一个类似于分页的实现:加载一定数量的记录,将它们发送到操作并批量接收响应。你应该注意不要让一个记录的整个包失败,有一个只重新发送部分任务的逻辑等等。

于 2013-09-18T12:13:57.910 回答