函数计算WordPress实例预热程序

函数计算有冷启动的问题,如果启用VPC,还有VPC的启动时间,为了避免冷启动问题,可以通过预热程序来避免函数实例被销毁。此预热程序示例使用Cloudflare Worker,正好同时用预热程序支持Wordpress的定时任务。

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());
  }
};

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注