我试图在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中调用。任何帮助将不胜感激!
答案 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");
}