【问题标题】:Scheduling in Asp.net.What is best solution?Asp.net 中的调度。最好的解决方案是什么?
【发布时间】:2012-05-11 02:00:28
【问题描述】:
我想在 Asp.net 中调度
我有以下选项来实现这个
编写 SQLServer JOB(我不想这样做。不想离开 .Net 环境)
第二个选项是我将编写 windows 服务,此窗口服务将调用 asp.net
webservice 然后这个 webservice 调用 asp.net 方法
(我也不需要这样做,因为我的托管服务提供商可能不允许我安装
窗口服务)
第三个选项是我在全局类的 Application_Start 事件中调用我的调度方法
(缺点是,webserver 会随时杀死线程)
在主页的 Page_Load 事件中调用调度代码(可能几个小时没有人访问我的网站
,由于调度代码,页面执行也可能很慢)
-
我还发现一些在线服务会在给定的时间间隔调用你的页面,下面给出了一些
http://www.cronservice.co.uk/new/
http://scheduler.codeeffects.com
谁能给我博彩玩家的解决方案并解释为什么它是博彩玩家?
提前致谢
【问题讨论】:
标签:
c#
asp.net
windows-services
scheduled-tasks
【解决方案1】:
ASP.NET 应用程序不是实现调度的正确位置。我建议创建一个在短时间内运行的服务或计划任务。
【解决方案2】:
没有一种解决方案适合所有人。 SQL 作业和 Windows 作业(计划通过windows task scheduler)被广泛使用。在我以前的工作地点之一,他们的工作可以在多个平台(大型机、Windows、SQL 服务器)上运行。其中一些工作的失败,每天将花费数千美元。所以他们使用了一种叫做 ESP 的东西。该软件监控所有平台上的作业,并在出现故障时向控制室发送消息。
如果您对要求有更多了解,我们也许可以更好地帮助您。
【解决方案3】:
ASP.NET 不是存放计划任务的正确位置。当我必须创建计划任务时,我正在使用 Quartz.net。
【解决方案5】:
在共享托管环境中您没有太多选择。我的主机 (WinHost) 允许远程访问他们的数据库,因此我能够使用任务计划程序创建在本地服务器上运行的可执行文件。
由于数据库是通过 Internet 访问的,因此性能不是很好,但仍然比尝试使用 ASP.NET 运行伪计划任务要好。
一些主机还提供一项服务,该服务会按计划在您的网站内请求一个网址。但是,这对我不起作用,因为我必须运行的任务比请求超时时间长。
【解决方案6】:
理想情况下,当您获得完全控制/历史记录/错误报告等时,我会选择 1。您可以在 .NET 中编写 SSIS 作业并让 SQL 服务器安排它。
但是,我在共享主机方面遇到了类似的问题,该问题非常严格。我所做的是创建一个页面,该页面在页面加载时运行该过程(使用查询字符串中的验证以确保安全)。然后,我使用我一直在运行的机器来安排 Windows 任务计划程序(这是 Windows 作为标准的一部分)来调用一些 VB 脚本来打开浏览器然后关闭它。