如何在Windows Server上模拟cron作业?

时间:2009-05-11 23:45:17

标签: asp.net cron

我在Windows机器上运行.NET,我希望每晚午夜都能运行一个函数。当然,由于HTTP无状态和Windows没有“cron job”类型功能(我知道),我要么每天晚上都要自己访问我的网站,或者只是等待用户访问网站依赖正在更新。

有没有替代方案,我可以创建某些东西会在某个时间自动运行?

由于

13 个答案:

答案 0 :(得分:12)

我非常确定Windows的任务调度程序可以执行cron可以执行的大多数操作。但我可能会遗漏一些东西。

修改:已达到设置 - >控制面板 - >计划任务

答案 1 :(得分:7)

如果其他答案都不适合你,可以选择以下选项:

有许多服务器监控服务会定期对您的站点进行http调用(如果您愿意,可以每分钟调用一次)。你可以免费获得5分钟的间隔时间。

创建一个受密码保护的页面,该页面执行您的功能(如果尚未完成此功能)并将该服务指向该页面。

至少这样你就不必另外写任何东西了,你可以轻松地知道它不依赖你的家用机器。

答案 2 :(得分:5)

杰夫·阿特伍德(Jeff Attwood)在播客的某个时刻提到了一个使用缓存过期回调来诋毁它的肮脏黑客。

他会在.Net的缓存中插入一个项目,过期时间设置为2小时,并且一旦项目过期就会调用一个回调,这就是他的cron。

我认为这是文章:
http://www.codeproject.com/KB/aspnet/ASPNETService.aspx?display=Print

如果你问我这很糟糕,但对于共享托管解决方案,我想不出更好的事情。

此外,还有外部cron服务,您提供URL,他们将定期“ping”它,如:(这些不是免费的)
http://webcron.org/
http://www.webbasedcron.com/

答案 3 :(得分:1)

这是在任务计划程序中以编程方式添加/删除和管理任务的起点。

http://www.codeproject.com/KB/system/taskscheduler.aspx

答案 4 :(得分:1)

如果你有命令行访问权限,你可以尝试“at”命令,这就像一个超轻的cron:

http://support.microsoft.com/kb/313565

答案 5 :(得分:1)

您还可以查看Quartz。http://quartznet.sourceforge.net/这是一个调度程序

答案 6 :(得分:1)

windows equivalent of cron is At。如果您有权访问该机器。

答案 7 :(得分:0)

使用Timer类创建一个定期调用要执行的方法的计时器。

可以在Global类的Application_Start事件中启动静态计时器。由于计时器使用的是间隔而不是绝对时间,因此您必须计算到午夜的时间间隔并相应地设置Interval属性。

答案 8 :(得分:0)

它看起来像GoDaddy has provisions for this,但有多种方法可以做到: 当您安装Drupal时,它需要您设置一个cron作业,并且我发现项目成员已经记录了这一步骤。有关详细信息,请转至http://drupal.org/cron,并记住阅读http://drupal.org/node/31506以获取特定的Windows信息。 如果其他一切都失败了,谷歌搜索“web cron job”并使用商业“cron job”服务。请仔细选择,不要被扯掉。

答案 9 :(得分:0)

我也面临同样的问题。我想在GoDaddy上运行带有MSSQL的ASP.NET。但他们没有Windows托管的示意图任务。阅读帖子后,我做了自己的谷歌,发现了这个免费的网络cron作业调度程序:

我只是尝试过它完美地工作......差不多。工作将在1年后到期。

http://www.setcronjob.com/

希望它有所帮助。

答案 10 :(得分:0)

答案 11 :(得分:0)

在寻找同一问题的答案时,我发现this post (quartz-net-with-asp-net)Quartz.NET的设置说明(“.NET平台企业Job Scheduler”,甚至来自他们的网站)应用

这里添加它主要是为了参考。

答案 12 :(得分:-1)

为什么不安装cygwin并使用cron本身?

这是一个关于设置的pdf指南:

http://csc.csudh.edu/kleyba/cygwin-cron.pdf