我有一个每1小时运行一次的windows服务。我想存储上次运行日期时间,以便每次运行服务时都可以检查值(上次运行日期-时间(。此值用作存储过程的参数之一,该存储过程由服务用于获取数据。
现在,我的问题是,存储上次运行日期值的最佳/理想方式是什么?
我能想出3种方法:
- 将其存储在数据库表中
- 将其存储在应用程序文件夹中的文本或XML文件中(这里的问题是:创建文本好吗文件并每小时更新一次?(
- 在配置文件中创建一个节,并在每次执行服务时更新它
请专家们提出建议。
如果您有一个服务需要检查它执行的进程最后一次运行到完成的时间,我会将其存储为用户设置项。如果您认为可能会有许多服务共享此任务,那么将其放在共享位置(如数据库(会很有帮助——不过,如果需要使用多个服务,将数据从用户设置迁移到数据库应该很容易。
我会避免使用自定义XML或数据文件,因为.NET和Visual Studio中已经支持用户(运行时(设置。
更新:
如果您想使用用户设置,只需双击解决方案资源管理器中的"设置"(在项目中的"属性"下(,或者在项目的属性中,选择"设置"选项卡。添加一个具有用户作用域的值(可能是类型System.DateTime
。如果您将其命名为LastExecuted
,则可以使用以下代码更新值:
Properties.Settings.Default.LastExecuted = DateTime.Now;
Properties.Settings.Default.Save();