2

我有一个控制台/桌面应用程序,可以从各种 Web 服务中抓取大量(想想百万次调用)数据。在任何给定时间,我都有大约 10 个线程执行这些调用并将数据聚合到 MySql 数据库中。所有种子也存储在数据库中。

报告进度的最佳方式是什么?进步我的意思是:

  • 已经执行了多少调用
  • 失败了多少
  • 平均通话时长是多少
  • 还剩多少

我想以某种方式记录所有这些并跟踪日志以获取数据。另一个想法是向始终打开的 TCP 端点提供某种输出,其中某种形式的 UI 可以读取数据并显示一些聚合。这两种方式看起来都太粗糙太复杂了。

还有其他想法吗?

4

2 回答 2

1

“最佳方式”取决于您的要求。如果您使用NLog之类的日志框架,您可以插入各种日志目标,例如文件、数据库、控制台或 TCP 端点。

您还可以使用像Harvester这样的查看器作为日志记录目标。

在记录多线程应用程序时,我有时会有一个额外的线程每隔一段时间(例如每 15 秒)将进度摘要写入记录器。

于 2013-10-29T01:06:48.230 回答
1

因为它是一个控制台应用程序,只需使用Writeline,只需让应用程序将重要的内容吐出到控制台即可。

我在创建的应用程序中做了类似的事情,将 PDF 从 SQL Server 数据库导出回 PDF 格式

你可以做很多不同的方式。如果您正在计算记录及其大小,您可以进行各种统计并让它显示每这么多记录的总数..


我还写了一个文本文件,这样我就可以跟踪所有的 PDF 文件以及它们的案例编号等等。该信息在我对上述链接问题的回答中。

您还可以使用统计数据每隔一段时间将内容写入文本文件。

Eric J.提到的记录器可能会更容易实现,并且对于您的工具箱来说将是一个不错的工具。

根据您的具体需求,这些选项同样有效。

于 2013-10-29T01:09:03.910 回答