【问题标题】:Post request from Scheduled Job is not working来自计划作业的发布请求不起作用
【发布时间】:2017-07-07 21:37:21
【问题描述】:

(我是 JS、node.js 和 Heroku 的新手,所以我希望问题很清楚) 我有一个 Heroku node.js 应用程序,我能够将 Heroku 调度程序设置为每 1 小时运行一次任务。

任务按时运行并调用了方法fireHook()(我可以在控制台中看到日志)但请求不起作用(我没有收到任何错误或错误)。

这是工作:

#!/usr/bin/env node

var request = require('request')


function fireHook(){
 console.log("firing")
 request({
    url: 'https://XXXXXX.herokuapp.com/jobs',
    method: "POST",
    headers: { "content-type": "application/json" },
    json: {"user_id":{ "id":"ddddd"}}

}, function(error, response, body) {
    console.log(response)
    if (error) {
        console.log('Error sending messages: ', error)
    } else if (response.body.error) {
        console.log('Error: ', response.body.error)
    } else {
        console.log('success: ', body)
        reportToSnitch()
    }
})
} 
fireHook();
process.exit();

2 个问题:

  1. 为什么出售请求不起作用?
  2. 我目前正在使用 webhook 来调用我的主应用程序,有没有更好的方法可以直接从脚本调用主应用程序上的函数?

谢谢

【问题讨论】:

    标签: javascript node.js heroku scheduled-tasks


    【解决方案1】:

    我认为您的process.exit() 在请求收到响应之前正在杀死您的脚本。尝试将其移动到回调中:

    #!/usr/bin/env node
    
    var request = require('request')
    
    
    function fireHook(){
     console.log("firing")
     request({
        url: 'https://XXXXXX.herokuapp.com/jobs',
        method: "POST",
        headers: { "content-type": "application/json" },
        json: {"user_id":{ "id":"ddddd"}}
    
    }, function(error, response, body) {
        console.log(response)
        if (error) {
            console.log('Error sending messages: ', error)
        } else if (response.body.error) {
            console.log('Error: ', response.body.error)
        } else {
            console.log('success: ', body)
            reportToSnitch()
        }
        process.exit();
    })
    } 
    fireHook();
    

    JavaScript 是异步的,因此您必须仔细考虑某些事件将在何时何地发生。如果您的 reportToSnitch() 函数也是异步的,您可能需要在该函数结束时触发 process.exit()

    【讨论】:

      猜你喜欢
      • 2022-01-14
      • 2016-11-23
      • 2017-05-19
      • 2020-09-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-09
      相关资源
      最近更新 更多