javascript - 不断收到 TimeoutOverflowWarning 数字不适合 32 位有符号整数。超时持续时间设置为 1
问题描述
我正在使用 Snoostorm 来生成我的 reddit 收件箱流。我有两个 Snoowrap 请求者。两者共享相同的 clientId、clientSecret、用户名和密码。我不确定双重请求者是否会混淆程序,但过一段时间我会收到 TimeoutOverflowWarning。
// Configuration File for Snoowrap
// Requiring Snoowrap
const Snoowrap = require('snoowrap');
// Snoowrap Init
const snoowrap = new Snoowrap({
userAgent: process.env.USER_AGENT,
clientId: process.env.CLIENT_ID,
clientSecret: process.env.CLIENT_SECRET,
username: process.env.REDDIT_USER,
password: process.env.REDDIT_PASS
});
// Snoowrap Config
snoowrap.config({
requestDelay: 20000,
warnings: true,
continueAfterRatelimitError: false,
retryErrorCodes: [502, 504, 522],
maxRetryAttempts: 3,
debug: true
})
module.exports = {
snoowrap: snoowrap,
Snoowrap:Snoowrap
}
// Requester file
const snoowrap = require('../config/snoo-config').snoowrap
const Snoowrap = require('../config/snoo-config').Snoowrap
const Snoostorm = require('snoostorm')
const colors = require('colors')
// Need a second client to make requests within the snoostorm, since snoostorm is using the main client to make all the stream requests.
const client = new Snoowrap({
userAgent: 'process.env.USER_AGENT',
clientId: process.env.CLIENT_ID,
clientSecret: process.env.CLIENT_SECRET,
username: process.env.REDDIT_USER,
password: process.env.REDDIT_PASS
})
client.config({
requestDelay: 20000,
warnings: true,
continueAfterRatelimitError: false,
retryErrorCodes: [502, 504, 522],
maxRetryAttempts: 3,
debug: true
})
const follow_ApproveMeThread = function (masterSubName, secondarySubName) {
const inbox = new Snoostorm.InboxStream(client, {
limit: 5
})
// Get the last 30 comments and a stream of the latest incoming.
inbox.on('item', function (comment) {
if (comment.subreddit_name_prefixed === `r/${masterSubName}`) {
author = comment.author.name
console.log('Adding '.blue + 'u/'.green + author.green + ` as contributor to ${secondarySubName}`.blue)
snoowrap.getSubreddit(secondarySubName).addContributor({
name: author
})
} else {
console.log(('u/' + comment.author.name + ' attempted to request me from an unauthorized subreddit!').red)
}
})
}
然后转储发生:
get
[调试] 从发送到 https://oauth.reddit.com/message/inbox?raw_json=1&count=9999&limit=5的请求中收到 200 状态码。ratelimitRemaining:568添加 u/stickRollBot 作为 SecondarySub 的贡献者
post
[调试] 从发送到 https://oauth.reddit.com/r/SecondarySub/api/friend?raw_json=1的请求中收到 200 状态码。ratelimitRemaining:567
get
[调试] 从发送到 https://oauth.reddit.com/message/inbox?raw_json=1&count=9999&limit=5的请求中收到 200 状态码。ratelimitRemaining:599
get
[调试] 从发送到 https://oauth.reddit.com/message/inbox?raw_json=1&count=9999&limit=5的请求中收到 200 状态码。ratelimitRemaining:598
get
[调试] 从发送到 https://oauth.reddit.com/message/inbox?raw_json=1&count=9999&limit=5的请求中收到 200 状态码。
get
ratelimitRemaining: 597 [debug] 从发送到 https://oauth.reddit.com/message/inbox?raw_json=1&count=9999&limit=5的请求中收到 200 状态码 。ratelimitRemaining:596(node:8728) TimeoutOverflowWarning: 2147489113 不适合 32 位有符号整数。超时持续时间设置为
- (node:8728) TimeoutOverflowWarning: 2147509113 不适合 32 位有符号整数。超时持续时间设置为 1。(节点:8728) TimeoutOverflowWarning:2147529109 不适合 32 位有符号整数。超时持续时间设置为 1。
并且整数不断增长,应用程序继续成功获取状态代码为 200 响应的请求,一遍又一遍地耗尽速率限制。
解决方案
我想我可能已经解决了它,因为它从那以后没有崩溃,但是我从Snoostorm.InboxStream 中删除了limit:5。显然它不喜欢我把它当作一个列表来对待?
推荐阅读
- excel - 特定工作表处于活动状态时无法运行宏
- html - 电子邮件的 HTML/CSS 时间线 (gmail...)
- c# - 如何使用 UWP 以编程方式连接两个图像
- javascript - 如何在嵌入对象中查找项目的位置
- reactjs - 让 CSSTransition 对工作类名称做出反应并没有改变
- c# - 如何使用 itextsharp 减少或删除段落之间的行?
- java - Java Stream - 只修改字符串
- ruby-on-rails - 迭代帖子时出现 500 内部服务器错误 (ActiveRecord)
- javascript - 如何在表单提交时发送ajax请求而不影响实际表单
- android - TensorImage 无法加载位图