函数计算有冷启动的问题,如果启用VPC,还有VPC的启动时间,为了避免冷启动问题,可以通过预热程序来避免函数实例被销毁。此预热程序示例使用Cloudflare Worker,正好同时用预热程序支持Wordpress的定时任务。
代码语言:javascript
复制
const sites = [ { url: 'https://www.dnote.cn/wp-cron.php', headers: { 'referer': 'https://www.dnote.cn/' }, timeout: 30000 } ];
async function sendRequest() {
for (let site of sites) {
const options = {}// 请求头 if (site.headers !== undefined) { options.headers = site.headers } // 超时时间 let id if (site.timeout > 0) { const controller = new AbortController() id = setTimeout(() => controller.abort(), site.timeout) options.signal = controller.signal } const res = await fetch(site.url, options) // 清理超时定时器 if (id !== undefined) { clearTimeout(id) } console.log(site.url, '->', res.status);
}
}
export default {
async scheduled (event, env, ctx) {
ctx.waitUntil(sendRequest());
}
};