【问题标题】:Best Practices Invoking Curl On SQL Server Table Insert? [closed]在 SQL Server 表插入上调用 Curl 的最佳实践? [关闭]
【发布时间】:2018-06-08 15:44:08
【问题描述】:

我有一个 SQL Server 表;每次插入具有特定值的列的新行时,我想使用 CURL 将该行中的数据发布到 RESTful Web API。

我最初考虑在表上使用触发器来调用存储过程,传递列值是调用xp_cmdshell 以使用CURL 的参数。

然而,经过进一步的研究,人们认为这是一个坏主意,原因有很多,从性能到数据完整性。关于如何做这样的事情的最佳实践是什么?如果是你,你会怎么做?

谢谢。任何帮助表示赞赏。

【问题讨论】:

  • 最好的选择是不要做这样的事情——主要是出于安全和性能的原因。您需要重新考虑您的需求并找到更好的解决方案
  • @marc_s 你能想到任何替代方法吗?我想让它尽可能接近实时,但我理解这些担忧。我不会以这种方式实现它,我只是在寻找最佳实践。从插入通过 API 更新网络服务似乎是很多人必须做的一件很常见的事情。
  • 在这种情况下我会做的正是@DavidBrowne 在他的回答中概述的内容:(1) 添加一个“注释”(最好包含所有相关信息)到一个表(您可以在触发器中执行此操作),然后 (2) 有一个单独的进程(如计划的存储过程,或服务器上定期计划的后台任务)读取该表并从您的 Web 应用程序中独立和异步地调用 REST API

标签: sql sql-server rest api curl


【解决方案1】:

您应该存储已插入行但尚未调用 Web API 的事实。这可以在表的状态列中,也可以在由您的业务逻辑(可能是触发器)维护的单独表中。

然后在后台进程(SQL 代理计划的作业或类似的)中为需要它的每一行调用 Web API,并更新数据库。

【讨论】:

    猜你喜欢
    • 2018-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多