Azure Webjob计时器触发器不会触发

阿比·库玛(Abhay kumar)

我们有两个使用TimerTrigger运行的Azure Webjob部署(产品和测试)。这两个Web应用程序都具有单个实例。根据本文的介绍,TimeTriggers使用单例锁来确保没有并行调用。这两个实例使用相同的存储帐户。我们面临的问题是,只有一个部署似乎获得了锁定,而其他部署却无法获得该锁定。如果我们停止第一个Web作业,第二个Web作业将获得锁定并开始处理,反之亦然。

锁定是否取决于存储帐户?我们如何确保这两个部署具有单独的锁定机制并同时运行?

汤玛士

没错,您必须使用其他存储帐户。

文档中

在后台,TimerTrigger使用WebJobs SDKSingleton功能来确保在任何给定时间仅运行触发函数的单个实例。当JobHost启动时,对于您的每个TimerTrigger函数,都会使用Blob租约(单例锁)这种分布的锁确保了您的调度函数在任何时候都只在运行一个实例。如果当前未租用该函数的Blob,则该函数将获取租约并立即按计划开始运行。如果无法获取Blob租约,则通常意味着该函数的另一个实例正在运行,因此该函数不会在当前主机中启动发生这种情况时,主机将继续定期检查以查看其是否可以获取租约。这是一种“恢复”模式,以确保在稳定状态下运行时,如果一个实例发生故障,另一个实例会通知并在另一个实例停止的地方继续操作。

如果您查看锁定机制的实现(StorageScheduleMonitor.cs):

  • 作业在容器内获取了一个锁(blob)。
  • Blob位于特定目录内(基于HostId)。
  • Blob的名称不可配置。

因此,基于@ volodymyr-bilyachat答案,有两种可能性:

  • 拥有独立的存储帐户:如果您在每个环境中都有一个存储帐户(dev / staging / prod),这是有意义的

  • 指定JobHostConfiguration类的HosId属性:

    var config = new JobHostConfiguration();
    config.HostId = "dev|staging|prod";
    

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Azure WebJobs表触发器

来自分类Dev

Azure Sql-跨数据库触发器

来自分类Dev

DocumentDB为什么无法从Azure门户触发触发器?

来自分类Dev

Azure Functions动态服务计划和队列触发器

来自分类Dev

在MAC上本地运行计时器触发了Azure功能(在docker内部)

来自分类Dev

如何使用Cosmos DB触发器构建Azure功能?

来自分类Dev

Azure-pipelines.yml中的多个单独的触发器

来自分类Dev

Azure DevOps管道触发器不会触发

来自分类Dev

基于Azure管道文件的触发器和标记

来自分类Dev

检索Azure函数触发器信息

来自分类Dev

如何使用计时器触发器将时区传递给Azure函数

来自分类Dev

Azure函数计时器可以触发对容器或目录中的所有Blob进行迭代吗?

来自分类Dev

从计时器触发的另一个调用Azure函数

来自分类Dev

Azure功能计时器触发器

来自分类Dev

Azure函数主题触发器是否可能具有多个订阅者的触发器?

来自分类Dev

从Azure门户安排计时器触发的Azure函数

来自分类Dev

Azure Blob触发器未触发

来自分类Dev

部署时不会触发Azure Function计时器触发器

来自分类Dev

带参数的Azure函数上的两个计时器触发器

来自分类Dev

Azure函数“操作已超时。” 用于计时器触发Blob归档

来自分类Dev

计时器触发的Azure功能无法正常执行

来自分类Dev

计时器触发器不会触发队列,但手动触发器会触发-Python

来自分类Dev

使用Python的Azure函数-不触发Blob触发器

来自分类Dev

暂停/禁用Azure Logic App功能上的计时器-触发器和功能之间的区别吗?

来自分类Dev

禁用多个同时的Azure触发器

来自分类Dev

Azure Web 作业计时器触发器未触发

来自分类Dev

如何从 Azure 计时器触发器函数引用 blob?

来自分类Dev

Azure Functions 计时器触发器不起作用

来自分类Dev

计时器中的 Azure 服务总线客户端触发 azure 函数

Related 相关文章

  1. 1

    Azure WebJobs表触发器

  2. 2

    Azure Sql-跨数据库触发器

  3. 3

    DocumentDB为什么无法从Azure门户触发触发器?

  4. 4

    Azure Functions动态服务计划和队列触发器

  5. 5

    在MAC上本地运行计时器触发了Azure功能(在docker内部)

  6. 6

    如何使用Cosmos DB触发器构建Azure功能?

  7. 7

    Azure-pipelines.yml中的多个单独的触发器

  8. 8

    Azure DevOps管道触发器不会触发

  9. 9

    基于Azure管道文件的触发器和标记

  10. 10

    检索Azure函数触发器信息

  11. 11

    如何使用计时器触发器将时区传递给Azure函数

  12. 12

    Azure函数计时器可以触发对容器或目录中的所有Blob进行迭代吗?

  13. 13

    从计时器触发的另一个调用Azure函数

  14. 14

    Azure功能计时器触发器

  15. 15

    Azure函数主题触发器是否可能具有多个订阅者的触发器?

  16. 16

    从Azure门户安排计时器触发的Azure函数

  17. 17

    Azure Blob触发器未触发

  18. 18

    部署时不会触发Azure Function计时器触发器

  19. 19

    带参数的Azure函数上的两个计时器触发器

  20. 20

    Azure函数“操作已超时。” 用于计时器触发Blob归档

  21. 21

    计时器触发的Azure功能无法正常执行

  22. 22

    计时器触发器不会触发队列,但手动触发器会触发-Python

  23. 23

    使用Python的Azure函数-不触发Blob触发器

  24. 24

    暂停/禁用Azure Logic App功能上的计时器-触发器和功能之间的区别吗?

  25. 25

    禁用多个同时的Azure触发器

  26. 26

    Azure Web 作业计时器触发器未触发

  27. 27

    如何从 Azure 计时器触发器函数引用 blob?

  28. 28

    Azure Functions 计时器触发器不起作用

  29. 29

    计时器中的 Azure 服务总线客户端触发 azure 函数

热门标签

归档