问题标签 [timer-trigger]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
21694 浏览

f# - 如何为 Azure 函数打开“始终开启”?

我有一个具有 3 个函数的函数应用程序,其中一个函数每 2 分钟触发一次。我观察到一段时间后,该功能停止被触发,但当我进入门户时重新启动。

据我了解,原因是默认情况下,“始终开启”处于关闭状态。但是,当我进入应用程序设置/常规设置时,我无法激活灰显的“开启”状态。我可以取消选中“关闭”,它似乎不会粘住或激活“开启”。

在此处输入图像描述

我错过了一些明显的东西吗?Always-On 是我的问题的解决方案,还是我应该做的其他事情?

注意:函数是用 F# 编写的;我怀疑这很重要,但我想我会提到它以防万一。

0 投票
3 回答
2992 浏览

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

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

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

0 投票
0 回答
1251 浏览

azure-webjobs - azure webjob 不会停止(请求停止后继续工作)

我们有以下情况。

我们决定在我们的一个 Web 应用程序中使用 webjob 每 30 秒执行一些工作。

为此,我们使用从 Main 函数调用的以下代码:

我们在 webjob 中只有由计时器触发的方法:

where _container - autofac 容器

我们注意到 2 个奇怪的不同事物(看起来它们是相互关联的):

1) 如果我们使用门户停止 webjob,则 webjob 显示为已停止,但实际上它仍在工作 - 我们在门户上的 Log 中看到日志,并且还登录到我们的 webjob 代码写入的 AppInsights。重新启动 WebApp 没有帮助。唯一的

阻止它的方法是删除 webjob(实际上它一直在工作),然后重新启动 WebApp。只有在那之后,网络作业才停止(实际上它消失了)。

PS:我们的 webjob 使用 TimerTrigger,而 TimerTrigger 又使用分布式锁来保证只会调用一个 wbjob 实例(每 30 秒)。因此,本地启动的实例只有在执行了上述操作(删除和重启)后才能获取锁。- 只是“删除\停止”网络作业继续运行的另一个证据。

2)一段时间后(也许在重新部署之后)我们的网络作业开始引发以下异常

在 Autofac.Core.Activators.Reflection.ConstructorParameterBinding.Instantiate 处理的 System.IO.FileNotFoundException

在尝试解决依赖项时(看起来很奇怪,因为大多数情况下所有依赖项都已成功解决 - 在部署在 azure Web App 或本地时)

谢谢

0 投票
5 回答
8375 浏览

azure - Azure Functions 失败通知

我在生产中运行了计时器触发的 Azure 函数,但现在我想在函数失败时收到通知。

就我而言,访问各种连接的服务可能会导致崩溃,并且有很多问题需要解决。崩溃是我需要通知的错误类型。

当函数确实失败时,日志条目指示失败,所以我想知道系统中是否有一个挂钩可以让我让系统生成通知。

例如,我知道 blob 和队列绑定支持创建毒队列条目,但计时器触发器绑定并没有说明任何关于这种性质的触发器输出。

我看到函数可以将它们的 $return 状态作为输入传递给其他函数,但是文档中没有深入解释该操作。另外,在这种情况下,我需要编写另一个函数来处理错误状态,并且我正在寻找内置的东西。

我已就此向@AzureSupport 进行过询问,但他们的回答与 Azure Functions 无关,而是将我介绍给 DLL 通知挂钩,然后建议我在 uservoice 上归档。

我敢肯定这里一定有人实施了某种错误状态通知。我更喜欢不需要代码的解决方案。

0 投票
1 回答
5285 浏览

azure - Azure 功能未按计划时间触发

注意:即使看起来重复,我的问题是不同的,我要求您先阅读完整的描述,然后再通过阅读问题标题匆忙标记问题。

我于2017 年 5 月 24 日在官方“ azure-webjobs-sdk-script ”git 存储库上打开了“ Azure 功能未在预定时间触发”问题,但尚未得到回复。所以我在这里重新问这个。

我在消费计划中使用 azure 函数,并通过在 function.json 中设置以下 cron 表达式来安排它在世界标准时间凌晨 4 点执行:

仅当我登录门户或单击功能刀片时,Azure 功能才会按时执行。当我从门户注销时它不会调用(建议系统侦听器或函数在一段时间后进入睡眠状态)。

他们的官方文档指出,消费计划中的功能不需要任何其他设置(如始终开启)来保持功能处于活动状态,Azure Functions 主机的实例是根据传入事件的数量动态添加和删除的。. 因此,根据文档,我无需配置其他设置来执行消费计划中的功能。

我试过什么?

  1. 从 SO 上的“计时器触发 azure 功能未触发”问题,我重新检查并确保了我的计划(消费计划)和时区。(我希望它以 UTC 运行,因此不需要显式设置)

  2. 从“ #1445:Azure 函数计时器触发器未触发”的 git 问题,我检查了它是否只是没有出现的日志。但我可以肯定,它不是日志,而是实际功能不会被触发,除非我打开门户或手动触发它。

  3. 如果我将调度更改为更接近的递归调用,我试图检查是否存在这种行为——我安排函数每 2 小时执行一次,即使我注销或没有手动唤醒函数,这个调度也能完美运行。这意味着,当计划设置为以更大的间隔运行(在我的情况下是每天)时会出现一些问题

0 投票
1 回答
1326 浏览

c# - 在每个月的特定日期触发的 Azure 函数 Cron 表达式是什么?

我有 C# Timer Trigger Azure 功能,我想在每个月的特定日期触发。它的 cron 表达式应该是什么?

例如:在每个月的 8 号和 20 号触发工作。

0 投票
2 回答
2043 浏览

c# - 是否可以使用顺序执行来执行 Azure 功能计时器触发器?

我想通过顺序执行来执行 Azure 计时器触发器。

假设我有间隔 5 分钟的 C# Timer 触发器。但函数执行需要时间为 8 分钟。这意味着在第一次调用完成之前,第二次触发器会启动另一个线程。我怎样才能避免这种情况?

0 投票
6 回答
7693 浏览

c# - 禁用 Azure Functions 的属性在 Visual Studio 2017 中不起作用

我有带有计时器触发器的 Azure 功能。

在这里Disable("true")不起作用。它会生成不正确的function.jsonas 。"disabled": "True",它应该是"disabled": True, Disable 只接受字符串值。有什么办法可以改变这个吗?或任何其他方式来禁用功能?

0 投票
1 回答
1375 浏览

azure - Azure Timer Trigger webjob:功能正在被识别但未被触发

我有一个 Azure 计时器触发器 webjob,部署在两个不同的环境中,有两个不同的存储帐户。Webjobs 已经部署了大约两个月,并且按预期运行了相当长的一段时间。但是,大约一个星期以来,该功能正在被识别但没有被执行。

以下是日志的外观:

Job 主机启动后没有任何反应,即没有调用/执行函数 ProcessTimerMessage。这是函数的外观:

Main 方法如下所示:

即使我尝试在本地调试 webjob,也会发生同样的情况。可能的原因/解决方案是什么?

任何帮助表示赞赏。

0 投票
1 回答
247 浏览

azure - 想在 Azure Web Job 中以不同的时间间隔触发不同的方法

我通过网站托管了我的网络作业(带有选项将现有项目添加为Azure Webjob)。我想在不同的时间间隔触发不同的方法。

代码 :

和 webjob-publish-settings.json 是:

我需要一个解决方案,以便我可以在 2 秒或 4 秒触发这些功能。

因此,当我的 Azure Web 作业托管在不同的网站上时,我想在 Azure Web 作业的不同时间间隔触发不同的方法。