我正在尝试开发一个应用程序,该应用程序将扫描网站,从网站获取数据,并在给定时间每天 3 次将该数据保存到数据库中,这些数据可以在 xml 配置文件中设置。 作为额外的用户组,每天最多可以手动触发应用程序启动几次。
我正在寻找为此解决方案使用 Windows 服务的优点和缺点,或者我应该设置 3 个将运行控制台应用程序的计划任务吗?
如果我决定使用 Windows 服务,那么在服务已经运行时触发手动启动服务的最佳方法是什么?该组用户将有某种 Web 界面来触发手动启动。
这可以使用计划任务轻松完成。我只需设置一个 3x 计划任务,该任务将在给定时间运行应用程序,并且用户组可以从 Web 界面启动 .exe 文件。但是,如何仅在应用程序尚未运行时才允许用户运行手动触发器?
最佳答案
由于 UI 最终是在 Web 中,因此服务本身不需要任何 UI,我会选择 Windows 服务,该服务可以由用户通过 Web 触发启动,或者在时间到来时自动启动(通过其内部代码)。
然后,要么:
- 在服务中,它有一些指示其状态为正在运行的信息,网络应用程序可以捕获该信息来查看它,或者,
- 在网络中,存在请求/监控服务状态的机制
我认为相当灵活。我会选择更容易的那个。
关于c# - Windows 服务与任务计划程序 - 手动启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33191978/