google-apps-script - Google Apps 脚本递归调度触发器
问题描述
我正在尝试以编程方式将触发器添加到 Google Apps 脚本 - 我有一个要安排的函数,它使用这样的调用main()
包装另一个基于时间的触发器调用ScriptApp.newTrigger().create()
function main(){
/*
* do stuff
*/
doScriptCallback();
}
function doScriptCallback(){
if(CONFIG.CALLBACK_SCRIPT_NAME != ''){
try {
ScriptApp.newTrigger(CONFIG.CALLBACK_SCRIPT_NAME)
.timeBased()
.after(5000)
.create()
Logger.log('Scheduled ' + CONFIG.CALLBACK_SCRIPT_NAME);
} catch(e) {
Logger.log(e);
}
}
}
main()
从编辑器运行正确运行并doScriptCallback()
安排功能CONFIG.CALLBACK_SCRIPT_NAME
但是如果我安排main()
那么doScriptCallback
唯一的记录消息,但该功能不会运行。
这是 Google Apps 脚本中的限制吗?
解决方案
这似乎是一个错误!
已经有一份关于谷歌问题跟踪器的报告详细说明了同样的行为:
Google 似乎确实知道这个问题,但如果它引起问题,您可以在此处提交您自己的错误。
您也可以点击上述页面左上角问题编号旁边的 ☆,这让 Google 知道更多人遇到此问题,因此更有可能更快地被看到 - 这似乎是一个常见问题.
解决方法:
同时,您似乎可以在 Apps Script 中禁用 V8 运行时,这将在 Rhino 运行时运行您的触发器。报告仅影响 V8,我可以确认我能够运行由 Rhino 中的嵌套触发器创建的函数。
您可以按照Run > Disable new Apps Script runtime powered by Chrome V8
.
推荐阅读
- python - 在 Python 中复制 Fidelity 的 14 分钟 RSI 计算
- ios - 为组件调用 obj
- spring-cloud-stream - 当自动提交为真时,Spring Cloud Stream Kafka Binder Health Indicator 失败
- selenium - selenium.common.exceptions.WebDriverException:消息:未知错误:net::ERR_CONNECTION_RESET(会话信息:headless chrome=86.0.4240.111)
- ios - 如果你想在 iOS 应用的导航栏中放置 3 个图标,你会怎么做?
- python - 将带有元组列表的 Pandas 列拆分为单独的列
- javascript - 矩形碰撞
- android - FragmentTransaction setCustomAnimations() 仅对下一个片段而不是当前片段进行动画处理
- java - 在绑定自定义视图事件中我能做什么?请告诉
- sql - 创建函数时出错--无效使用副作用运算符