我不确定这是否可以使用GoDaddy / Razor Hosting / DiscountASP /等的常规托管计划,或者我是否需要VPS(或类似)。
我要做的是让程序不断运行并每小时执行一次活动,或让程序每小时启动一次。程序/服务基本上使用HttpWebRequest获取网页的源并将其保存到SQL Server数据库。显然,我希望它每隔x分钟运行一次,以使内容保持最新状态。我可能每天使用该程序7次,或者我可能每7个月使用一次,因此每次访问该页面时都无法抓取该网站。
在我自己的机器上,我创建了一个带有线程或后台服务的ASP.Net页面,它检查每小时间隔的时间然后执行任务。但由于我在另一台机器上,我的访问权限非常有限,我不知道如何解决这个问题。我想也许一个SQL Server触发器可能会起作用,也许是在系统时间之外,但我不确定这是否会起作用(我会执行一个程序吗?)。
在我的机器上有很多其他方法可以执行此任务,但是我无法执行任何操作b / c我无法访问具有常规主机的实际系统。所以我必须得到VPS [或类似的东西]或者我有什么方法可以做到这一点?
答案 0 :(得分:1)
您无法在标准托管计划上运行程序/软件。您将需要VPS或专用主机。专用主机是首选,因为一些VPS计划,取决于主机,仍然不会允许它。
然而,您可以使用PHP或任何Web语言执行类似操作,然后将其作为Cron作业运行,这在正常托管上是允许的。基本上,如果您可以将其编码为前端页面或小脚本(perl / python等),那么您可以对其进行编码并使其作为Cron运行。所以例如代码页面,放在目录/ crons中然后就像Cron Job那样,但是不喜欢它在网站上的任何其他位置。
答案 1 :(得分:1)
最好和最简单的解决方案之一是缓存和缓存对象失效的功能。
System.Web.HttpRuntime.Cache.Insert(key,value, null, DateTime.UtcNow.AddHour(1), Cache.NoSliding, Pariority.Default, DelegateToCallWhenCacheIsInvalid);
Asp.Net在1小时内从缓存中删除值并调用您的委托方法。您可以完成工作并将另一个值缓存1小时。 注意一些情况:
答案 2 :(得分:0)
也许您可以尝试将Hangfire用于重复任务。使用ASP.NET Web MVC / API很容易配置和使用,虽然我还没有在godaddy上尝试过。
答案 3 :(得分:0)
DiscountASP在“控制面板”中有一个“计划任务管理器”:您告诉它每15分钟或更长时间调用一次您的页面(然后您可以将您的活动编码为在该页面内运行)。
答案 4 :(得分:0)
我认为您正在寻找通过单一时间安排来规划和组织活动的完美方式。我告诉你可以使用online event registration system轻松处理各种类型的功能。
该系统能够同时宣传和管理活动,在帮助下您不必担心管理门票销售或注册的时间。此外,它还将提供设计定制活动页面甚至门票的特权。
我相信你会在实施这个系统后看到差异。