首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >解析社区节点-apn fork -发送作业挂起

解析社区节点-apn fork -发送作业挂起
EN

Stack Overflow用户
提问于 2020-09-23 16:00:06
回答 1查看 141关注 0票数 0

我们使用的是node的解析分支--apn lib ( https://github.com/parse-community/node-apn )--一年前我们切换到这个分支是因为我们的实际问题--但现在它又回来了。

我们发送了大约1.000.000个通知,分别分配到不同的子任务,其中一些通知在调用apnProvider.send()后在发送给苹果时挂起……我们得不到应答/回叫。

这个问题在去年年底经常发生,全年都运行得很好--从上周末开始,问题又回来了--我们这边没有任何变化:-(从40个进程1或2中分解出来就行了。

我们实现了一个变通方法,一个监视器,它在30秒后看到挂起进程并停止它,但这是一个糟糕的解决方案。我想问一下,是否有人有任何想法来解决这个问题,或者找出真正的原因。我没有得到一个错误事件或其他东西。

我们测试了不同的nodejs版本,并在ubuntu服务器上工作--也测试了不同的版本。

诚挚的问候。

代码部分:

初始化:

代码语言:javascript
复制
var options = { production: apnsProduction };
options.token = {key: apnsKey, keyId: apnsKeyId, teamId: apnsTeamId };
apnProvider = new apn.Provider(options);

观看活动:

代码语言:javascript
复制
apnProvider.on("transmissionError", function(errCode, notification, device) {
      console.log(...);
});

apnProvider.on("timeout", function () {
   console.log(...);
});

apnProvider.on("disconnected", function() {
   console.log(...);
});

apnProvider.on("socketError", function(err){
   console.log(err);
});

apnProvider.on("goaway", function(err){
   console.log(err);
});

然后我们有了mysql中的接收器,所以我选择并收集了一个数组中的100个接收器,并向它们发送消息:

代码语言:javascript
复制
apnProvider.send(message, arrReciver).then( (result) => {

      result.sent.forEach( (token) => {
         transmittedCnt++;
      });

      result.failed.forEach( (failure) => {
         errorCnt++;

         if (failure.error) // A transport-level error occurred (e.g. network problem)
         {
             console.log(...) // some log output ...
         }
         else
         {
            db.deletePushDev("ios", failure.device, "send error " + failure.status + " - " + util.inspect(failure.response));  
         }
      });

      cntSendFunctionsRunning--;
      callback();
   }).catch((result) => {
      console.log(result);
   });

回调() ...是否继续对接下来的100个设备执行选择获取...希望这是足够清楚的-我不能在这里提供全部代码。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-26 20:08:19

这个问题现在在解析社区的node-apn fork的新版本4.0.0中得到了处理。新版本处理http2连接的超时。

问题:https://github.com/parse-community/node-apn/issues/24

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64023486

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档