Tag: 轮询

Loopback3定期调用远程方法或API

基本上,我的要求是不断寻找文件夹中的新文件,读取文件的内容,并调用回送API。 为了实现这一点,我正在尝试做下面的事情: 我有一个回环的远程方法,需要定期调用,即每隔2分钟。 我在官方的环回文档中阅读了有关asynchronous启动脚本: https : //loopback.io/doc/en/lb2/Defining-boot-scripts#synchronous-and-asynchronous-boot-scripts到目前为止,我已经能够写下面的代码: module.exports = function(app, callback) { setInterval(function() { console.log('Hello world'); callback(); }, 120000); }; 但是这会在下面引发一个错误。 error: uncaughtException: listen EADDRINUSE :::443 另外,有没有办法从启动脚本调用远程方法? loopback是否支持cron / schedular或轮询function。 我是否需要编写一个单独的nodejs应用程序来定期调用API。 谢谢

如何定期从一个node.js服务器轮询另一台服务器?

我有一个用于数据库的mongodb的node.js服务器A. 还有另一个远程服务器B (不需要是基于节点的),它暴露了一个HTTP / GET API“/ status”,并返回“FREE”或“BUSY”作为响应。 当用户点击服务器A中的一个特定的API端点(比如说POST /testing)时,我希望每分钟开始轮询服务器B的状态API,直到服务器B返回“FREE”作为响应。 用户不需要等到服务器B返回“FREE”响应(轮询B是服务器A中的后台作业)。 一旦服务器A得到B的“免费”响应,它就会向用户发送一封电子邮件。 在服务器A中如何实现这一点,请记住并发用户的数量可能会变大。

推送iOS和Android Interval Poll方法的通知服务器后端

我正在为iOS和Android编写一个NodeJS推送通知服务器。 目前,一旦我获得设备令牌,我将它们保存在本地MongoDB数据库中,然后在发生更改时触发通知。 问题是,“更改”(信息添加)发生的数据库不是我自己的。 这是第三方的服务器。 所以我知道服务器的变化是通过使用第三方提供的API。 我目前的解决scheme是使用setTimeout每隔X分钟发出一个请求来检查更改,然后基于此发出通知。 缩短的时间间隔是10分钟,最长的时间是1小时。 我基于时间dynamic地改变时间间隔。 我的问题是(是), 1.) setTimeout方法是否是解决这个问题的最好方法? 如果不是我还能使用什么? 2.)有什么办法可以在这种情况下实现Web Sockets ? 3.)如果setTimeout是唯一的select,我应该遇到什么样的问题? 这是什么目前的function看起来像 function start_notifications_server_driver() { if(current_user_info.num_sent <= current_user_info.frequency){ //I removed the interval object on here because it's quite large and would take up space here for(var i = 0; i < intervals.length; i++){ if(check_if_time_between(intervals[i])){ if(dev_mode) console.log("Returned true for", intervals[i]); temp_interval […]

socket.io不断尝试使用错误的地址轮询

嘿,我想用跨域的socket.io。 例如,假设域名是: https : //client.domain.com和https://server.domain.com 。 我的客户端代码如下所示: socket = io.connect("https://server.domain.com"); socket.on("connect", function () { console.log("socketio Connected to server!"); }); socket.emit("test", {"test":"test"}); 和服务器端: var fs = require('fs'); var https = require('https'); var express = require('express'); var socketIO = require('socket.io'); var app = express(); // Settings var serverOptions = { key: fs.readFileSync('privkey1.pem'), cert: fs.readFileSync('cert1.pem') }; var serverPort […]