Logic App Recurrence工作流:实现每2天设置变量的条件配置
可以实现该条件判断,以下是具体实现思路
核心逻辑
要实现每2小时触发一次,且每48小时(24个触发周期)将变量x设为999,其余时间设为111,本质是判断当前触发是否处于每48小时的特定触发节点,有两种常用实现方式:
方式1:基于触发时间的模运算(无需外部存储)
直接通过时间计算判断当前触发是否为每48小时的目标节点,以低代码工作流(如Power Automate)为例:
- 保持Recurrence触发器每2小时触发的配置
- 初始化变量
x为默认值111 - 添加「条件」动作,使用以下表达式判断:
表达式解释:mod(int(divide(ticks(utcNow()), ticks('PT2H'))), 24) == 0ticks(utcNow()):将当前UTC时间转换为时间刻度值ticks('PT2H'):2小时对应的时间刻度值divide(...):计算从起始时间到当前的2小时间隔总数mod(..., 24):对间隔总数取模(24个间隔=48小时),余数为0时正好是每48小时的触发点
- 若条件成立,将
x更新为999;否则保持默认值111
注:如果需要基于本地时区的12am判断,需先将UTC时间转换为本地时区,再进行计算,例如:
mod(int(divide(ticks(convertTimeZone(utcNow(), 'UTC', 'Asia/Shanghai')), ticks('PT2H'))), 24) == 0
方式2:使用持久化计数器(适合需精准对齐起始时间的场景)
如果需要严格从工作流首次启动时间开始计算48小时周期,可通过持久化计数器实现:
- 保持Recurrence触发器每2小时触发的配置
- 从外部存储(如SQL表、Blob存储或工作流环境变量)读取计数器值,若为空则初始化为0
- 计数器值加1后,判断是否等于24:
- 等于24:将
x设为999,并将计数器重置为0 - 不等于24:将
x设为111,并保存更新后的计数器值
- 等于24:将
内容的提问来源于stack exchange,提问作者lazziegal
相关产品推荐
相关产品推荐

