2

我对单独使用应用服务和应用服务与网络作业之间的区别感到困惑。

我有一个必须手动触发的计算密集型任务(2-20 分钟)(用户不时要求它)。现在,一切都发生在一个应用服务中。我正在考虑将这个繁重的过程提取到另一个应用程序服务中的网络作业中。这个新的应用服务将是空的(不提供 api),但会托管这个网络作业,我将从第一个应用服务触发。

我很担心第二个应用服务将是空的。我可以在不使用 webjobs(只是 WebApi 项目)的情况下使用第二个应用服务来完成工作吗?还是我应该坚持网络工作?这两种方法的优缺点是什么?

4

1 回答 1

5

在我看来,我们不应该将 web api 和 web 作业进行比较。因为这两个东西用于不同的环境。

网络作业功能:

  • Web 作业可以配置为手动触发或按计划运行。

  • 可以将 Web 作业配置为持续运行(也就是一直持续运行)

  • Web 作业可以设置为根据其他 Azure 服务中的事件触发,例如添加到存储队列或服务总线队列或主题的新消息
  • Web 作业可以长时间运行
  • Web 作业可能运行时间很短
  • Web Jobs 可以用任何语言实现为命令行可执行文件或脚本

可以实施 Azure Web 作业来满足任何后台处理需求。

因此,如果您想使用后台处理并且不想将响应返回给任何其他应用程序。我建议你可以选择webjobs。

Web api 很容易为客户构建 HTTP 服务以获取响应。

所以这是用来与他人互动的。因此,如果您想获得结果并在任何其他地方使用。你可以选择web api。

Web API 功能:

  • 属性路由
  • CORS - 跨域资源共享
  • OWIN(.NET 的开放式 Web 界面)自托管
  • Web API OData ...

总而言之,如果计算不会与其他人交互(将结果返回给客户),我建议你可以选择网络作业。

于 2017-09-15T02:20:54.493 回答