我会用一个Windows Service结合Quartz.net包。
你可以运行任何你想要的和任何时间表。
编辑:从上面的讨论中,我收集你的工作将轮询市场价格(Web请求)将运行每隔几秒钟和得到的结果将更新数据库。
EDIT2:
这将是您的石英工作:
public class FetchAndSaveFinancialData : IJob
{
public void Execute()
{
//web request to get info
//save to db
}
}
那么你的Windows服务的基类:
public class YourFinancialServiceBase : ServiceBase
{
protected override void OnStart(string[] args)
{
ServiceMain();
base.OnStart(args);
}
protected override void OnStop()
{
base.OnStop();
}
protected void ServiceMain()
{
var scheduler = StdSchedulerFactory.GetDefaultScheduler();
var job = JobBuilder.Create<FetchAndSaveFinancialData>().WithIdentity("Job1", "Group1").Build();
ITrigger trigger = TriggerBuilder.Create().WithIdentity("Trigger1","Group1")
.StartNow()
.WithSimpleSchedule(x=>x
.WithIntervalInSeconds(5)
.RepeatForever()
).Build();
scheduler.ScheduleJob(job,trigger);
scheduler.Start();
}
}
EDIT3:
这一切都取决于你用于访问数据。如果您打算使用EntityFramework,那么我会将MVC项目和WindowsService项目保存在引用库项目的相同解决方案中。库项目将包含所有模型,并允许您查看是否更改某个组件或某个组件的效果。
另一方面,如果您对数据库中的存储过程依赖很多,则上述内容不太相关。您将不得不整合存储过程中的任何更改。
以我的经验,我宁愿通过许多项目在一个解决方案中进行筛选比试图找到一个不同的语言,你的应用程序的关键部分完全不同的解决方案。
您是否需要使用JSON数据更新数据库,或者您是否使用客户端的JSON来简单地指示服务器定期更新数据库? –
是的,谢谢Daniel,数据库将被每隔几秒从数据提供者请求的JSON中包含的市场价格更新。 希望能回答你的问题。 – user6063812
我有点困惑 - 你的MVC网站实际上是从哪里接收json请求的REST api?如果不是,你能提供一些关于你如何获得json的信息吗?我需要更好地了解信息来源以提出解决方案。 –