从Node中的CronJob调用API不会给出任何响应

时间:2017-11-28 21:54:47

标签: javascript node.js cron slack-api

我试图在CronJob中调用slackbot API,我希望在白天的某个时间将消息发送到通道,但是当从CronJob中调用时,该方法不起作用。以下是相关代码:

Response resp ...
String respStr = resp.readEntity(String.class);

上面的Shiftbot.prototype.run = function () { Shiftbot.super_.call(this, this.settings); this.on('start', this._onStart); this.on('message', this._onMessage); }; Shiftbot.prototype._onStart = function() { this._loadBotUser(); new CronJob('* * 16 * * *', function(){ console.log('You will see this message every second '); Shiftbot.prototype._sendReminder(); }, null, true, "America/New_York"); } Shiftbot.prototype._sendReminder = function() { console.log('test'); this.postMessageToChannel("shiftbot_beta", "Cron test", {as_user: true}); } 方法在从另一个_sendReminder方法调用时可以正常工作,但不能在cronjob中调用。任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:1)

在Shiftbot.prototype的范围内创建变量self,并在CronJob的范围内使用它,如下所示:

Shiftbot.prototype._onStart = function() {
    var self = this;
    this._loadBotUser();
    new CronJob('* * 16 * * *', function(){
        console.log('You will see this message every second ');
        self._sendReminder();
    }, null, true, "America/New_York");
}