【发布时间】:2016-02-02 03:36:47
【问题描述】:
实现跨多个 asp.net 项目运行作业的任务调度程序的最佳方法是什么?
我的意思是,例如,我有一个项目(项目 A)向 sftp 服务器发送文件,另一个项目(项目 B)向客户发送电子邮件。两者都需要自动化。最好的方法是什么?
我一直在研究并发现如果我可以安装 Windows 服务(我愿意),那么我应该这样做。但是怎么做?我是否在共享项目(Project Shared)中创建一个 IJobsInterface 并在 A 和 B 之间共享,让每个项目实现自己的 RunJob() 版本,然后将所有这些都引用到 Windows 服务(可能是控制台应用程序?)和每个实现执行 RunJob?我是否接近解决方案?
【问题讨论】:
-
您可以使用操作系统的调度程序。有一个 .net 包装器:taskscheduler.codeplex.com 但这并不适合 asp.net 应用程序。
-
当 Windows 中已经有一个非常好的任务计划程序时,为什么还要为您的东西安装另一个计划程序。除此之外,您的问题重新设计可以说主要是基于意见的
-
@SteveWellens 不需要 c# 包装器。 c# 可以直接与 COM 对象对话。只需将对 Micorosft TaskScheduler 的 COM 引用添加到您的 c# 项目
-
感谢您的回复。我可能需要提一下,这个调度程序应该以特定的时间间隔运行,理想情况下不应该停止。如果我的应用程序由于某种原因终止并且我在所述项目中有一个任务调度程序,那么该调度程序是否也会停止?
-
如果您使用 Windows 任务计划程序,它具有内置的重试功能。
标签: c# asp.net windows-services