存储Windows服务的上次运行日期时间/执行日期时间的最佳方法是什么?

时间:2013-02-24 18:22:17

标签: datetime windows-services

我有一个每1小时运行一次的Windows服务。我想存储上次运行的日期时间,以便每次运行服务时都可以检查值(上次运行日期时间)。 此值用作服务用于获取数据的存储过程的参数之一。

现在,我的问题是存储最后一次运行日期值的最佳/理想方式是什么?

我可以想到3种方式:

  1. 将其存储在数据库表中。
  2. 将其存储在应用程序文件夹中的文本或XML文件中(这里的问题是:创建文本是否合适 在应用程序文件夹中的文件并每小时更新一次?)。
  3. 在配置文件中创建一个部分,并在每次执行服务时更新它。
  4. 专家,请指教。

1 个答案:

答案 0 :(得分:1)

如果你有一个服务需要检查它执行的进程的最后一次运行是否完成,我会将其存储为用户设置项。如果您认为可能有许多共享此任务的服务,那么将它放在共享位置(如数据库)会很有帮助 - 但是,如果您将数据从用户设置迁移到数据库应该很容易需要使用多种服务。

我会避免使用自定义XML或数据文件,因为已经支持.NET和Visual Studio中的用户(运行时)设置。

<强>更新

如果要使用用户设置,只需双击解决方案资源管理器中的设置(在项目中的属性下)或项目的属性中,选择设置选项卡。使用用户范围添加值(可能是System.DateTime类型。如果您命名为LastExecuted,则可以使用以下代码更新值:

Properties.Settings.Default.LastExecuted = DateTime.Now;
Properties.Settings.Default.Save();