我有一个控制台/桌面应用程序,可以从各种Web服务中抓取很多(想想百万次调用)数据。在任何给定时间,我有大约10个线程执行这些调用并将数据聚合到MySql数据库中。所有种子也存储在数据库中。
报告进度的最佳方式是什么?按进展我的意思是:
我考虑以某种方式记录所有这些并拖尾日志以获取数据。另一个想法是向一个始终开放的TCP端点提供某种输出,其中某种形式的UI可以读取数据并显示一些聚合。两种方式都看起来太粗糙和太复杂。
还有其他想法吗?
答案 0 :(得分:1)
“最佳方式”取决于您的要求。如果使用NLog之类的日志记录框架,则可以插入各种日志目标,如文件,数据库,控制台或TCP端点。
您还可以使用Harvester之类的查看器作为记录目标。
在记录多线程应用程序时,我有时会有一个额外的线程,每隔一段时间(例如每15秒)将一次进度摘要写入记录器。
答案 1 :(得分:1)
因为它是一个控制台应用程序,只需使用Writeline
,只需让应用程序将重要的东西吐出到控制台。
我在export PDF's from a SQL Server Database back into PDF Format
创建的应用程序中做了类似的事情你可以通过许多不同的方式做到这一点。如果你正在计算记录和它们的大小,你可以运行各种记录并让它显示每一个记录的总数。
我还写了文本文件,这样我就可以跟踪所有PDF以及他们去过的案例编号等等。这些信息是我对上述链接问题给出的答案。
你也可以经常用统计数据写出文本文件。
提及 Eric J。的记录器可能会更容易实现,并且对于您的工具箱来说将是一个不错的工具。这些选项同样有效,具体取决于您的具体需求。