为多个asp.net项目安排任务

时间:2016-02-02 03:36:48

标签: c# asp.net windows-services

实现在多个asp.net项目中运行作业的任务调度程序的最佳方法是什么?

我的意思是,例如,我有一个项目(项目A)将文件发送到sftp服务器,另一个项目(项目B)向客户端发送电子邮件。两者都需要自动化。这样做的最佳方式是什么?

我一直在研究并发现如果我有权安装Windows服务(我这样做),那么我应该这样做。但是怎么样?我是否在共享项目(Project Shared)中创建IJobsInterface并在A和B之间共享,让每个项目实现自己的RunJob()版本,然后将所有这些引用到Windows服务(可能是控制台应用程序?)和每个实现执行RunJob?我甚至接近解决方案了吗?

1 个答案:

答案 0 :(得分:0)

看看Revalee。它是一个开源项目,让您可以安排对ASP.NET项目的Web回调。每个ASP.NET应用程序都将使用Revalee.Client库来安排回调(使用Revalee Server)到各种Web应用程序;每个回调都是"触发器"对于特定的计划任务。更具体地说,每个客户端都会使用Revalee Server注册未来的回调(即,运行一次的单独Windows服务应用程序)。

安排回调非常简单:

DateTimeOffset callbackTime = new DateTimeOffset(...); // scheduled task trigger time
Uri callbackUrl = new Uri(...); // url to callback (your "job" code resides at this url)
RevaleeRegistrar.ScheduleCallback(callbackTime, callbackUrl);