Azure 从Web作业调用Web API还是使用类?

Azure 从Web作业调用Web API还是使用类?,azure,azure-webjobs,azure-webjobssdk,Azure,Azure Webjobs,Azure Webjobssdk,我正在Azure上创建一个Web作业,目的是处理一些工作负载并在我的网站上执行服务器后台任务 我的网站有几个Web API方法供我的网站使用,但我也希望Web作业在完成后执行与Web API方法相同的任务 我的问题是,我应该让Web作业调用这个Web API(如果可能的话),还是应该将Web API代码移动到一个类中,让Web API和Web作业都调用这个类 我只是想知道这里的正常做法是什么 谢谢我建议您将公共逻辑放在dll中,让它们共享该库,而不是试图让webjob调用webapi 我认为这将

我正在Azure上创建一个Web作业,目的是处理一些工作负载并在我的网站上执行服务器后台任务

我的网站有几个Web API方法供我的网站使用,但我也希望Web作业在完成后执行与Web API方法相同的任务

我的问题是,我应该让Web作业调用这个Web API(如果可能的话),还是应该将Web API代码移动到一个类中,让Web API和Web作业都调用这个类

我只是想知道这里的正常做法是什么


谢谢

我建议您将公共逻辑放在dll中,让它们共享该库,而不是试图让webjob调用webapi


我认为这将是获得你想要的东西的简单方法(另外,它将帮助你保持事物的分离,以便它们可以共享——而不是在你的webapi中加入太多逻辑)。

我认为这是玩家的选择。如果您选择以这种方式部署它们,它们将在Azure中的相同实例上运行。您可以通过跟踪API进行重用,也可以通过.dll共享类进行重用。我们一开始是混合的,但随着我们使用的webjob数量越来越大/越来越复杂,我们最终采用了dogfooding这个API。这里有几个原因

  • 与API使用的库/代码没有耦合
  • 仅依赖于API和我们为其选择的任何其他库,更容易将Web作业移动到其自己的解决方案中
  • 几乎免费的API测试(通过我们自己的客户机跟踪API)
  • 我们已经在API中连接了日志记录和其他问题(更多重用)

这两种方法都能起作用,但实际上,这实际上取决于管理依赖关系以及您正在构建的应用程序/解决方案的大小。

谢谢您,杰森,我会考虑这样做的!感谢Hanks ElvisLives,关于将其移动到自己的解决方案中,特别是在可伸缩性方面,这一点非常好。我计划在将来扩展web作业,使用web API意味着没有限制,也不那么复杂。测试方也是一个良好的积极因素。谢谢