Update iCloud.md

增加解决云函数热启动问题的说明
This commit is contained in:
DoveBoy
2020-11-19 17:18:48 +08:00
committed by GitHub
parent 003087fcaa
commit 0aaf47ca84
+7 -6
View File
@@ -36,6 +36,8 @@
```javascript ```javascript
'use strict'; 'use strict';
exports.main_handler = async (event, context, callback) => { exports.main_handler = async (event, context, callback) => {
//解决云函数热启动问题
delete require.cache[require.resolve('./jd_xtg1.js')];
require('./jd_xtg1.js') //这里写你想要的脚本 require('./jd_xtg1.js') //这里写你想要的脚本
require('./jd_xtg2.js') //这里写你想要的脚本 require('./jd_xtg2.js') //这里写你想要的脚本
require('./jd_xtg3.js') //这里写你想要的脚本 require('./jd_xtg3.js') //这里写你想要的脚本
@@ -44,8 +46,7 @@ exports.main_handler = async (event, context, callback) => {
``` ```
此时,同一时间点下,会同时执行多个脚本,触发器触发后,index.js文件中require()下的所有脚本都会被执行 此时,同一时间点下,会同时执行多个脚本,触发器触发后,index.js文件中require()下的所有脚本都会被执行
**优点**:同一时间下可以同时执行多个脚本,适合脚本种类少的repository,对脚本数量少的repository推荐使用此方案 **优点**:同一时间下可以同时执行多个脚本,适合脚本种类少的repository,对脚本数量少的repository推荐使用此方案<br>**缺点**:多个脚本不同时间点运行无法满足
**缺点**:多个脚本不同时间点运行无法满足
方案二:同一个仓库下不同的时间点,分别执行不同的脚本(类似GitHub Action执行机制) 方案二:同一个仓库下不同的时间点,分别执行不同的脚本(类似GitHub Action执行机制)
@@ -57,6 +58,8 @@ exports.main_handler = async (event, context, callback) => {
'use strict'; 'use strict';
exports.main_handler = async (event, context, callback) => { exports.main_handler = async (event, context, callback) => {
for (const v of event["Message"].split("\r\n")) { for (const v of event["Message"].split("\r\n")) {
//解决云函数热启动问题
delete require.cache[require.resolve(`./${v}.js`)];
console.log(v); console.log(v);
require(`./${v}.js`) require(`./${v}.js`)
} }
@@ -66,14 +69,12 @@ exports.main_handler = async (event, context, callback) => {
此时触发管理按照下图中进行设置,附加信息选择“是”,内容填写需要传递执行的具体脚本文件名,以回车键换行。触发器触发后,附加信息栏内的脚本会被执行,设置多个不同时间点的触发器达到类似GitHub Action的效果 此时触发管理按照下图中进行设置,附加信息选择“是”,内容填写需要传递执行的具体脚本文件名,以回车键换行。触发器触发后,附加信息栏内的脚本会被执行,设置多个不同时间点的触发器达到类似GitHub Action的效果
**优点**:可以满足个性化需求,同一个repository下只需要设置不同的触发器,可以实现不同时间点分别执行不同的脚本 **优点**:可以满足个性化需求,同一个repository下只需要设置不同的触发器,可以实现不同时间点分别执行不同的脚本<br>**缺点**repository下脚本过多,如果需要设置多个触发器,实现个性化运行效果,由于云函数的限制,最多只能设置10个
**缺点**:repository下脚本过多,如果需要设置多个触发器,实现个性化运行效果,由于云函数的限制,最多只能设置10个
[![B20KxI.png](https://s1.ax1x.com/2020/11/05/B20KxI.png)](https://imgchr.com/i/B20KxI) [![B20KxI.png](https://s1.ax1x.com/2020/11/05/B20KxI.png)](https://imgchr.com/i/B20KxI)
[![BRCG0H.png](https://s1.ax1x.com/2020/11/05/BRCG0H.png)](https://imgchr.com/i/BRCG0H) [![BRCG0H.png](https://s1.ax1x.com/2020/11/05/BRCG0H.png)](https://imgchr.com/i/BRCG0H)
**注意:方案一与方案二不能混合到同一个index.js文件中使用,同一个仓库下,二者只能选择其一。目前由于云函数热启动问题的存在,频繁的触发器启动,虽然日志显示“调用成功”,但实际内容却没有执行,方案一与方案二暂时无法规避此问题,期待之后能解决** **注意:方案一与方案二不能混合到同一个index.js文件中使用,同一个仓库下,二者只能选择其一。感谢[issues#115](https://github.com/lxk0301/jd_scripts/issues/115)中的解决方案,目前云函数连续测试已经可以规避热启动问题了**
**增加cookie** **增加cookie**