Javascript Azure函数计时器在数据库表中的精确时间触发

Javascript Azure函数计时器在数据库表中的精确时间触发,javascript,node.js,azure,cron,azure-functions,Javascript,Node.js,Azure,Cron,Azure Functions,我有一个Azure函数(node.js)和一个数据库表中的精确时间列表(7:30、8:05等)。我想使用数据库表在准确的时间触发Azure函数 现在我的问题是 计时器触发器是否只采用单个cron计划 我是否可以使用环境变量在时间1(例如7:30)触发,然后在完成时,在代码中将环境变量更改为时间2(例如8:05)?以便在时间2(8:05)再次运行 其他函数(HTTP触发)是否可以运行我的原始函数(计时器触发)并更改环境变量 计时器触发器是否只采用单个cron计划? 是的,计时器触发器只能有一个cr

我有一个Azure函数(node.js)和一个数据库表中的精确时间列表(7:30、8:05等)。我想使用数据库表在准确的时间触发Azure函数

现在我的问题是

  • 计时器触发器是否只采用单个cron计划
  • 我是否可以使用环境变量在时间1(例如7:30)触发,然后在完成时,在代码中将环境变量更改为时间2(例如8:05)?以便在时间2(8:05)再次运行
  • 其他函数(HTTP触发)是否可以运行我的原始函数(计时器触发)并更改环境变量
  • 计时器触发器是否只采用单个cron计划? 是的,计时器触发器只能有一个cron表达式

    关于动态cron表达式,您可以参考以下内容,
    ScheduleExpression
    a显示应用程序设置中的设置。您可以使用
    设置“计划”:“%TriggerSchedule%”
    。并在应用程序设置中定义TriggerSchedule。然后动态修改应用程序设置

    另一种方法是使用修改function.json

    PUT https://{functionAppName}.scm.azurewebsites.net/api/vfs/{pathToFunction.json}, Headers: If-Match: "*", Body: new function.json content
    
    然后同步函数触发器

    POST https://{functionAppName}.scm.azurewebsites.net/api/functions/synctriggers
    
    其他函数(HTTP触发)可以运行我的原始函数吗 (计时器触发)并同时更改环境变量

    您可以在计时器函数中调用HTTP触发器函数,但是Azure函数运行时配置文件不可写。但在运行应用程序服务时,您可以通过或通过以编程方式管理这些设置

    请记住更改这些设置将触发站点重新启动

    计时器触发器是否只采用单个cron计划? 是的,计时器触发器只能有一个cron表达式

    关于动态cron表达式,您可以参考以下内容,
    ScheduleExpression
    a显示应用程序设置中的设置。您可以使用
    设置“计划”:“%TriggerSchedule%”
    。并在应用程序设置中定义TriggerSchedule。然后动态修改应用程序设置

    另一种方法是使用修改function.json

    PUT https://{functionAppName}.scm.azurewebsites.net/api/vfs/{pathToFunction.json}, Headers: If-Match: "*", Body: new function.json content
    
    然后同步函数触发器

    POST https://{functionAppName}.scm.azurewebsites.net/api/functions/synctriggers
    
    其他函数(HTTP触发)可以运行我的原始函数吗 (计时器触发)并同时更改环境变量

    您可以在计时器函数中调用HTTP触发器函数,但是Azure函数运行时配置文件不可写。但在运行应用程序服务时,您可以通过或通过以编程方式管理这些设置


    请记住对这些设置的更改将触发站点重新启动

    您还可以为此使用持久功能:

    在那里,您可以从数据库中动态加载时间,并为下一次执行创建新的计时器。运行该计时器后,创建下一个计时器


    基本上,您将得到一个永恒的编排器(这是可以的):

    您还可以使用持久的函数来实现这一点:

    在那里,您可以从数据库中动态加载时间,并为下一次执行创建新的计时器。运行该计时器后,创建下一个计时器


    基本上,您将得到一个永恒的编排器(这很好):

    似乎永恒的编排在JS中只执行一个活动。我认为“新”不起作用。我计划做一个持久的功能,比如使用delay。我想知道它是否只运行函数的一个实例???我担心我的函数会重叠(如果运行了几天,其中两个可能同时运行)如何杀死其他正在运行的函数???我似乎无法让mongoDB与持久的函数一起工作。帮助?看来永恒的配器在JS中只执行一个活动。我认为“新”不起作用。我计划做一个持久的功能,比如使用delay。我想知道它是否只运行函数的一个实例???我担心我的函数会重叠(如果运行了几天,其中两个可能同时运行)如何杀死其他正在运行的函数???我似乎无法让mongoDB与持久的函数一起工作。帮忙?