setTimeout 会使用 Heroku 免费测功机小时吗?

Will setTimeout use Heroku free dyno hours?

我有一个带有命令的机器人,该命令允许用户输入以破折号分隔的消息,然后输入指定时间,然后将其传递给机器人,机器人在指定数量后用消息提醒用户时间过去了。

function reminder(msg) {
    const message = msg.content.replace(this.prefix+this.name+" ","");
    const params = message.split("-");
    setTimeout(() => {
        msg.channel.sendMessage(params[0]);
    }, (parseInt(params[1])*1000));
}

我打算 运行 Heroku 上的这个机器人,但由于我只是一个青少年,这对我来说是一种爱好,所以我必须使用 Heroku 每个月给我的免费测功机时间。如果有人使用机器人的这个功能,setTimeout 的计时机制是否会保持我的测功机启用并使用免费的测功机时间?

编辑:如果您认为有一个比 Heroku 更好的免费替代品,而且你们中的任何一个都知道,那就太好了:)

是也不是。

让我们假设 setTimeout 中的逻辑将是 运行 每少于 30 分钟 ,所以 YES heroku 服务器仍然醒着,所以它会使用免费的测功机时间。

但是如果消息要在超过 30 分钟后发送,比如说一个小时,那么如果在此期间没有任何请求到达您的服务器,您的服务器将在 30m 不活动后休眠,所以 NO 只要没有传入请求。

阅读更多有关 Heroku 免费测功机小时的信息,here

你可以试试这个:http://neversleep.ml

它会监视您的服务器,如果它崩溃,它会发送通知电子邮件。