我知道这个话题的变化已经被问过,但这里是我的情况:Windows任务调度VS Windows服务.NET应用程序
我有大约30 FTP接口应用。每个界面都有自己的需求和配置,但基本上它是从源服务器下载文件 - 有时是每天,有时每分钟(有些甚至可能在几秒钟内排定)
对于我最初的开发,我写了一个C#类库它可以完成所有的FTP工作。此应用程序(可能是一个控制台应用程序或Windows服务)将最有可能运行在Windows Server 2012上运行
现在到下一块,我试图决定之间:
1)写控制台应用程序(或PowerShell脚本?),它将命令 行输入加上每个接口的配置文件。我会 使用Windows任务计划程序进行计划。为了部署这些接口,我可以创建一个使用“schtasks.exe” 创建和配置任务的批处理文件。每个界面的一项任务。听起来 易peasy ...
OR
2)编写Windows应用程序的服务......但在这里,我很困惑。我的 是否为我的每个界面创建和安装服务? (即只有 不同的东西可能是配置文件)。或者,我是否创建了一个主要的 服务,该服务为单个 配置文件中定义的每个接口衍生线程?
如果我是作为一项服务完成的,我该如何管理 的维护/部署?如果我停止服务,它会不会影响所有接口 ?我该如何执行实际的 调度?我读过的建议是使用Quartz.Net调度程序或者.Net定时器。
- - -
一些额外的想法: 以下是在计算器上的一些读物,它会弹出这些议题/关注:
windows service vs scheduled task Scheduled console app vs Windows service? When is it appropriate to use each
任务计划参与讨论
- 列表项目
- 可能需要登录? (我读过这是不正确的)机器管理员密码更改
- 问题(我读过这是不正确的)
- 问题与高权威帐户(网络服务,本地系统或用户) 运行
- 多个进程/长时间运行事务的问题 这对我来说真的很糟糕,例如,如果两个进程试图下载(并删除)相同的源FTP文件。许多
- 经验是,这是不是稳定/可靠的Windows服务,特别是在早期的操作系统Windows7的前
- 较少的基础设施支持(如重试,监控等故障策略)
- 关注时调度在数秒内
的Windows服务问题
- 列表项
- 潜在的国际空间站与计时器的UE
- 更复杂
控制台应用程序+任务计划参与讨论
- 列表项
- 不能在后台运行 - 所以托管服务器将命令提示符启动 这是一个严重的问题。如果我有30个FTP接口,并且每个计划每分钟/小时运行一次,那就是很多窗口!
- 我该如何解决这个问题?改用PowerShell脚本?
期待一些反馈和示例代码/脚本,如果相关也高度赞赏。
感谢
_full真正world_样品(C#库FTP)具有良好的'模式和使用practices' ***任务调度程序,Windows服务或石英***? –