【问题标题】:Best option to schedule payments: azure scheduler, WebJob or Azure Functions or a Worker Role?安排付款的最佳选择:azure scheduler、WebJob 或 Azure Functions 还是 Worker Role?
【发布时间】:2017-05-04 11:07:39
【问题描述】:

我在 azure 上托管了我的网站,现在我想安排按月付款。我正在使用 Authorize.net 进行付款,但我无法使用他们的定期计费功能,因为它提供的控制很少。我必须在数据库中执行检查、付款和更新记录。我应该使用 Azure 调度程序、Azure WebJob 或 Azure Functions 作为辅助角色吗?

【问题讨论】:

    标签: azure-webjobs azure-worker-roles job-scheduling azure-functions azure-scheduler


    【解决方案1】:

    绝对不是工人角色。它们非常重量级,通常不值得为这样一个简单的工作付出努力。

    网络作业可能是一个很好的解决方案。它可以在您的 Web 应用程序的上下文中运行,因此您可以免费使用它。但是您需要对此进行一些开发 - 您必须创建一个调用 Authorize.net 的应用程序。

    如果您只需要触发一个 HTTP 请求,那么使用 Azure 调度程序来安排这个 HTTP 操作可能是一个不错的选择。您可以配置请求本身(标头、有效负载),它也具有错误处理功能。但您可能必须将敏感信息存储在 Azure 门户中的计划作业配置中。

    所以我想说忘记工人角色,然后权衡简单性与灵活性和开发工作量。很遗憾,我可能会使用调度程序尝试它,然后如果遇到调度程序不可行的问题,则继续进行 WebJob。

    编辑:

    Azure Functions 也是一个不错的选择 - 我想说它是 webjob 和简单计划选项之间的中间地带。它是应用程序服务功能集的一部分,因此它可以在与 Web 应用程序相同的应用程序服务计划中运行,因此无需任何费用。但是在这里,您也必须自己编写对 Authorize.net 的 http 请求。但与 webjobs 相比,Azure Functions 轻量级得多——您不必创建 exe(或 ps 脚本或其他),只需在 Azure 门户内的脚本编辑器中编写 http 请求即可。但是你仍然必须自己做。不过,这比简单的计划选项更灵活一些,在处理错误时需要考虑这一点。

    所以这是一个很好的中间地带,但考虑到任务的复杂性(即触发单个 HTTP 请求),我认为它仍然需要大量工作。

    【讨论】:

    • 您介意在组合中添加 Azure Functions 吗?
    • @GauravMantri 编辑了帖子以包含 Azure Functions
    • 谢谢!为此+1 :)。我一直在阅读有关 Functions 的内容,它看起来非常适合执行后台任务。
    • 仅供参考,对于 Azure Functions,如果您使用的是消费计划(按使用量付费),那么您的函数执行时间需要限制为 20 分钟。任何运行时间超过该时间的 Function App 进程都将被终止。如果您选择了应用服务计划,那么您可以通过打开 AlwaysOn 功能来长时间运行 Azure Functions。
    • 对不起,我需要更正一下,时间框是 5 分钟,而不是 20 分钟。
    【解决方案2】:

    要使其快速运行,逻辑应用程序是一个不错的选择。使用逻辑应用程序,您可以使用基于您定义的计划的计时器触发它,使用开箱即用的 SQL/DocDB(取决于您的具体场景)连接到您的数据库。尽管目前没有可用的 Authorize.net 连接器,但您应该能够使用通用 HTTP 操作与其 RESTful API 对话。最有可能的是,您应该能够非常快速地完成这项工作。我还建议在 aka.ms/logicapps-wish 上提交建议,以便我们可以跟踪 Authorize.net 连接器的请求,如果可用,这将使这变得更加容易。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-09-06
      • 2015-03-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多