【问题标题】:Console application, windows service, or web service for reading from Azure SQL database every 5 minutes?用于每 5 分钟读取一次 Azure SQL 数据库的控制台应用程序、Windows 服务或 Web 服务?
【发布时间】:2017-08-07 03:33:24
【问题描述】:

我希望有一种方法可以无条件地每 5 分钟检查一次 Azure 数据库中的表,所以它只是一个计划任务,不管任何情况,每 5 分钟运行一次。

不确定我应该为此使用的最佳应用程序模板是什么,我在控制台应用程序、Windows 服务、Web 服务或其他东西之间进行选择。

请让我知道哪一个会更好地完成这项工作并且更容易安排。

【问题讨论】:

  • 只需要每5分钟运行一次任务,还是检查后有特定的端点?
  • 这也应该在 Azure SQL 中工作(未经测试)-github.com/christiandelbianco/…。这比盲目地戳数据库要好得多。使用 Azure Functions 或 WebJobs 完成工作。
  • 实际上它应该每5分钟检查一次Azure队列,没有触发或停止条件,它只会每5分钟检查一次队列,当有新消息时它应该调用另一个方法。

标签: c# database web-services azure windows-services


【解决方案1】:

如果您想在云中运行某些东西,请考虑使用 Azure 逻辑应用。您可能需要检查数据库,然后根据查询结果采取一些措施。借助逻辑应用,您可以使用设计器实现工作流。它需要最少的编码,因为各种连接器已经开箱即用。此外,您只需为应用程序运行期间的计算时间付费。 如果你有一些增强的逻辑要执行,你可以考虑编写一个 Azure 函数并从逻辑应用程序中调用它。

您说您想定期检查队列并在消息存在时执行一些操作。你有两个选择

  1. Azure function 每当有新消息到达队列时触发。每当消息到达队列时让 Azure 调用您的函数,而不是每 5 分钟连续轮询队列并检查消息,这样会更便宜、更容易。

  2. Logic App 描述工作流。在这里,您可以轻松配置要轮询的队列、对消息执行检查以及在满足条件时使用现有连接器轻松访问 SQL 表。

【讨论】:

  • 这些选项听起来很有趣,但你能告诉我使用这些选项比使用 WebJobs 有什么好处吗?另外,我的逻辑是每当有新消息添加到队列中时,我应该启动不同的线程,每 2 分钟运行 6 个小时,以继续检查 Azure SQL 数据库中的值,所以在这种情况下,哪种应用程序类型是最好的?跨度>
【解决方案2】:

最好的是 ConsoleApplication。

如果您想从您的计算机上运行它,只需运行它。如果你想在 Azure 中运行它 - 使用 Azure Web Jobs。

在 Azure 中创建 AppServie,然后在 AppService 页面上选择此刀片并按照说明进行操作。这些 Web 作业可以从 Azure 运行常规 ConsoleApplications。应用程序可以为所欲为。

【讨论】:

  • 我是否应该在“发布”模式下构建项目,将 .exe 文件复制到某处并安排任务或 Azure WebJob 来运行此 exe 文件?
  • 发布还是调试,这个没关系。 Azure 不知道那是什么。 exe 文件和 dll、app.config 等其他内容将作为部署过程的一部分被拾取。
猜你喜欢
  • 1970-01-01
  • 2016-10-01
  • 1970-01-01
  • 1970-01-01
  • 2017-02-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多