我应该如何组织我的WebJob项目?

时间:2018-03-26 09:31:56

标签: azure azure-webjobs azure-webjobssdk

是否有关于何时在Visual Studio中创建新的Azure WebJob项目的指导?我有很多操作,其中大多数是队列触发的,所以使用SDK是有道理的。但是由于队列触发函数是Main中没有引用的静态方法,我可以将所有内容放在同一个项目中。这有什么缺点吗?它是否会限制可执行文件可以同时处理的消息数量?

1 个答案:

答案 0 :(得分:0)

  

是否有关于何时在Visual Studio中创建新的Azure WebJob项目的指导?

使用 Web作业,您的后台进程可以作为任何命令行可执行文件或脚本(.ps1,bash,可执行文件等)执行。您可以连续或在特定时间(计划)执行项目中的某些代码。这可以非常方便。但我们通常会将本地webjobs发布到Azure。这一切都取决于您的个人要求。有关详细信息,请阅读此article

  

我可以把所有东西放在同一个项目中。这有什么缺点吗?

Functions.cs中的静态方法将自动触发。您无需在Main类中添加引用。如果将所有方法都放在项目中,我认为它可能会影响可读性和性能。当您运行webjob项目时,它将加载Functions.cs中的所有静态方法。但是,当您只想触发特定的静态方法时,可以注释无用的方法。

  

它是否会限制可执行文件可以同时处理的消息数量?

默认情况下,SDK一次获取一批16个队列消息,并执行并行处理它们的功能。有关详细信息,您可以在webjobs中学习Parallel execution

  

并行执行

     

如果您有多个功能侦听不同的队列,SDK会在同时收到消息时并行调用它们。

     

当收到单个队列的多条消息时也是如此。默认情况下,SDK一次获取一批16个队列消息,并执行并行处理它们的功能。