函数计算WordPress实例预热程序

函数计算有冷启动的问题,如果启用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());
}
};