nodejs编写一个程序,该程序在指定时间执行对HTTP端点的调用

问题描述

摘要

我正在创建一个程序,以将请求发送到HTTP端点,如下所示。

  1. 通过POST发送HTTP请求
  2. 接收响应数据
  3. PUT在POST响应期间通过POST接收到的ID和时间发出的HTTP请求。
  4. 接收响应数据

代码

正在制作的nodejs

'use strict'

const http = require('http');
const HOST = `hoge.io`;
const PATH = `/path`;

let postData = {
  "name": "stack",};

let postDataStr = JSON.stringify(postData);
let options = {
    host: HOST,port: 80,path: PATH,method: 'POST',headers: {
      'Content-Type': 'application/json','Content-Length': Buffer.byteLength(postDataStr)
    }
};

let req = http.request(options,(res) => {
  let data = '';
  let body = '';
  console.log(`POST statusCode: ${res.statusCode}`)
  res.setEncoding('utf8');
  res.on('data',(chunk) => {
    body += chunk;
  });

  res.on('end',() => {
    let resultData = '';
      data = JSON.parse(body);
      let Now = new Date().getTime();
      let time = data.actives_at - Now;
      // setTimeout(putData.bind(this,data),time);
      console.log(data)
  });
});
req.on('error',(e) => {
  console.log('error: ' + e.message);
});
req.write(postDataStr);
req.end();

响应值

node api.js
{
  id: 'xxxxxxxxxxx',actives_at: xxxxxxxxxx (in UNIX time milliseconds),called_at: xxxxxxxxxx,}

我想做什么。

当到达actives_at的时间时,我们希望通过PUT将请求发送到端点,如下所示。

$ curl -X 'PUT' -H 'X-Id:xxxxxxxxxx' http://hoge.io/path

要实现此目标,我需要对代码进行哪些补充?

解决方法

您可以考虑使用AgendaJS(https://github.com/agenda/agenda),这是一个使用Mongodb存储数据的调度程序。 它将接受Date对象,时间戳或MomentJS对象,并在时间到来时运行您定义的函数

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...