我有一个文本文件,其中包含大约100,000个标识符记录。
我必须阅读所有记录,每条记录我都要求Web服务并从Web服务接收结果,结果我写入另一个文件。
我在两个解决方案之间混淆: - 将标识符文件读取到标识符列表,迭代此列表,调用Web服务,.... - 读取每行的标识符行,调用Web服务,.....
您认为哪种解决方案会更好?程序会做得更快吗?
谢谢大家。
答案 0 :(得分:1)
正如Dukeling所说,使用不同的线程来读取文件,发送请求和写入文件可以提高程序的速度,而不是你提出的一个线程解决方案。
我建议您开始使用对Web服务的异步调用。您可以进行呼叫,但不要等待响应(您在回调中处理响应)。当您对Web服务进行大量并行调用时(如您所希望的那样),这可以释放托管计算机上的一些I / O线程,并且有时可以提高处理请求的速率/时间。 然后你可以有一个从文件中读取的线程,启动异步调用并重复。在回调函数上,您实现了写入文件。您应该在此级别实现一个逻辑,以确保您的响应以正确的顺序编写。
另一方面,为每条记录调用Web服务可能过于繁琐。 我建议一个类似于pagging的实现:加载一定数量的记录,将它们发送到操作并批量接收响应。你应该注意不要让整个包失败一个recors,有一个逻辑只重新发送一部分任务等等。