小程序雲開發 - 雲函數定時觸發器配置
新建雲函數timer,小程序會新建兩個文件 index.js 和 package.json
定時觸發器的效果等同於如下一段代碼,定時觸發器並不能傳遞參數,需要將參數寫在雲函數中。
wx.cloud.callFunction({
name:'timer'
})
本文以定時刷新access_token為例
1.雲函數內容
index.js
// 雲函數入口文件
const cloud = require('wx-server-sdk')
cloud.init({
env: cloud.DYNAMIC_CURRENT_ENV
})
const db = cloud.database()
var request = require('request')
// 定時器
exports.main = async(event, context) => {
const appkey = '';
const appsecret = '';
var url = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=' + appkey + '&client_secret=' + appsecret;
return new Promise((resolve, reject) => {
request({
url: url,
method: "POST",
json: true,
headers: {
"content-type": "application/json",
},
}, function(error, response, body) {
if (!error && response.statusCode == 200) {
console.log('通行證為' + body.access_token)
resolve(body.access_token)
//更新數據庫中的access_token
}
})
})
}
現在已經實現了雲函數功能,實現觸發器需要在timer文件夾下新建 config.json配置文件。
config.json文件就是觸發器配置的核心文件,文件內容如下,具體匹配規則請查看官方文檔。
定時觸發器
這段代碼規則為每天凌晨兩點觸發一次。
config.json
{
"triggers": [
{
"name": "myTrigger",
"type": "timer",
"config": "0 0 2 * * * *"
}
]
}
2.部署過程
- 選擇timer函數整體 - > 創建並部署(雲端安裝依賴)
- 單獨選中config.json文件 - > 上傳觸發器