安排付款的最佳选择:azure调度程序,WebJob或Azure功能或工作者角色?

时间:2017-05-04 11:07:39

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

我已经在azure上托管了我的网站,现在我想按月安排付款。我使用Authorize.net进行付款,但我无法使用其定期结算功能,因为它几乎无法控制。我在数据库中执行检查,进行支付和更新记录。我应该使用Azure Scheduler,Azure WebJob或Azure功能作为工作者角色?

2 个答案:

答案 0 :(得分:2)

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

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

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

所以我会说忘掉工人角色,然后权衡简单性与灵活性和开发工作。这很难过,我可能会尝试使用调度程序,然后继续使用WebJob,如果遇到调度程序不可行的事情。

编辑:

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

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

答案 1 :(得分:1)

为了让它快速运行,Logic Apps是一个不错的选择。使用Logic Apps,您可以根据您定义的计划使用计时器触发它,使用现成的SQL / DocDB(取决于您的具体情况)连接到您的数据库。虽然目前没有可用的Authorize.net连接器,但您应该能够使用通用HTTP操作与其RESTful API进行通信。最有可能的是,你应该能够很快地完成这项工作。我还建议在aka.ms/logicapps-wish上提交一个建议,以便我们可以跟踪Authorize.net连接器的请求,如果可用的话,这将使这变得更容易。