等待节点js子进程exec函数完成

时间:2019-10-03 14:11:48

标签: node.js async-await child-process

所以我有一个子进程exec函数,该函数向Splunk发出多个发布请求。我希望此功能在发出GET请求之前完成。以前,一切都很棒,但是由于某些原因,突然之间exec post请求的速度变慢了。

我尝试使函数异步,然后在exec(上使用await(),但是没有用。我想它与for循环有关

const splunk_post_request = () => {
  console.log("POST Status Ok");
  for (let i = 0; i < splunk_query_array.length; i++) {
    exec(
      `curl -H "Authorization: Basic @#$@#%@#$@#$" -k ${post_url} -d search="search ${splunk_query_array[i]}" -d output_mode=json -d id=${real_sid_array[i]} -d adhoc_search_level=fast -d earliest_time=-${splunk_hours[i]}
      -d max_count=10`,
      (error, stdout, stderr) => {
        if (stderr) {
          console.log(stderr);
        }
        console.log(
          splunk_query_array[i] +
            "Sid Arr Val " +
            real_sid_array[i] +
            " hours " +
            splunk_hours[i]
        );
        console.log("stdout is ", stdout);
        if (error) {
          console.log("exec error: ", error);
        }
      }
    );
  }
};

现在POST请求运行缓慢,get方法(正在使用setInterval)首先启动,由于尚未发出Post请求,因此显然无法获取数据。

0 个答案:

没有答案