Windows服务从数据库读取并根据日期调用应用程序

时间:2013-11-11 16:34:09

标签: c# .net sql-server wcf windows-services

我正在开发一个数据优化项目。它有一个客户端Web应用程序,用于接收用户的任务。假设这些任务是一些繁重的计算,普通系统无法轻易完成。该程序需要很长时间才能计算出大量数据。所以我要做的是从我的Web应用程序接收计算命令,并在我的服务器端有一个Windows服务来监听要完成的新任务。

我希望我的服务能够监听插入到我的Tasks表中的数据,并根据这些日期的时间运行计算器。我当然要处理一些多线程。也许如果程序繁忙,其他进程将不得不等待。

我也不介意为我的应用程序设置一个小GUI,以查看正在处理哪些订单以及我的服务是忙还是空闲。

我首先想到在我的数据库中添加SQL Server作业以经常查询表并根据日期运行应用程序。但这对我来说并不是一个很好的解决方案。我想要的是一个灵活的即时服务服务,当我们在数据库中有新数据并决定做什么时,他们就会意识到这一点。

我并不特别坚持使用Windows服务。所以任何好主意都是受欢迎的。

1 个答案:

答案 0 :(得分:0)

我在Powershell中做过类似的事情。 我有什么:

  • 请求收集的“队列”表
  • 请求来自调用过程的客户
  • “队列历史记录”表 - 已经“处理”的请求从“队列”转到“queue_history”(删除触发器)
  • PowerShell循环读取队列表

  • 队列中的请求是通过start-job命令独立启动的,这些实际上是单独的Powershell实例(我的任务主要是一些外部exe调用,但我认为对存储过程调用也很有用)。 / p>

  • powershell循环还会将他的“心跳”报告给表格。
  • 还可以观看表格并存档STOP标志,以便我可以阻止它。