Tag: 队列

什么是在香草节点实现队列的好方法?

我试图实现一个JavaScript队列,我想一些指针或一个很好的图书馆参考。

在单独的线程NodeJs中运行长时间运行的快速API进程

我有一个API调用需要大约5-10分钟的时间来处理。 我设置了一个超时方法,这样我就可以立即获得一个排队状态的API响应。 下面简单的视觉 doWork(object) => { /*… Takes 5 minutes */ } app.post('/longProcess',(req,res)=> { setTimeout(this.doWork(req.body), 1000); res.send({ status: 'queued' }); }) 这对第一个请求立即作出回应的作品。 但第二个请求被locking,等待doWork完成。 而不是使用SetTimeout,我真正想要做的就是将longProcess发送到一个单独的单线程队列和逐一处理这些。 有什么build议么?

从nodejs访问消息队列SQL Server

我在nodejs中写了一个webAPI。 我想公开一个socket.io到客户端,以便他们可以得到实时通知。 我要发送给客户端的信息存储在SQL Server 2008 R2数据库中。 我很清楚如何将数据从nodejs发送到客户端…我无法弄清楚如何将通知从SQL Server发送到nodejs? 似乎有一个可能的解决scheme使用来自Microsoft的新服务总线模块 ,但安装和pipe理服务总线看起来像是在寻找麻烦。 我读了很多关于nodejs的MQ解决scheme,比如node_redis , node_stomp等等,但是他们都没有直接和MSMQ或者SQL Server直接对话。 我是一个MQ世界的新手,但我想我会设法把我需要从SQL Server的数据到一个MSMQ队列,所以我的问题是, 我怎样才能从nodejs访问一个MSMQ队列? 谢谢。-

Node.js TCP / IP服务器队列不工作

我正在写一个TCP / IP队列,应该限制最大连接用户数为3,并让其他人等到用户断开连接。 这些是我正在使用的function: var maxClients = 3; var currentClients = 0; var _pending = []; function process_pending() { if (_pending.length > 0) { var client = _pending.shift(); currentClients++; client(function() { currentClients–; process.nextTick(process_pending); }); } } function client_limit(client) { if (currentClients < maxClients) { currentClients++; client(function() { currentClients–; process.nextTick(process_pending); }); } else { console.log('Overloaded, queuing […]

NodeJS队列asynchronous函数

我正在研究一个NodeJS函数,它有一系列需要运行的asynchronous任务。 我从数据库中读取了一系列tasks ,每个task都有一个“runFrequency”属性。 例如 : var tasks: [ task1: { type: doSomething, …, runFrequency: 10 // Needs to run every 10 seconds. }, task2: { type: doSomethingElse, …, runFrequency: 30 // Needs to run every 30 seconds. }, task3: { type: doSomething, …, runFrequency: 10 } ]; 我需要调用一个processTask()函数在每个runFrequency设置中运行每个任务,但一次只能运行一个任务。 (10秒的运行频率只是一个目标,不需要精确到10秒)。 例 12:00:00: processTask(task1); 12:00:02: task1 completes, […]

如何在node.js中对http请求进行排队? 为每个路线创build单独的队列

我想在node.js中创build一个请求队列。 对于每条路线,都必须有一个单独的队列来排队只需要那条路线。 例如: 路由:localhost:3000 / que100 queue100 = [req1,req2,req3 … reqN]; 路由:localhost:3000 / que101 queue101 = [req1,req2,req3 …. reqN]; 我想按顺序处理请求,但不想在处理其他路由请求时阻止不同路由的请求。 所以我想实现不同的队列可以并行工作的每个路由。 请提出一些实施的想法。

如果我使用node.js,是否还需要队列服务?

之前,当我使用Django的时候,我需要一个队列来在幕后做些沉重的事情。 (可能需要1秒或更多,点击数据库,请求等)。 如果我使用Node.js,我还需要一个队列吗? 我可以在node.js中asynchronous执行所有重要的东西吗?

在Azure上的多个实例之间维护Node.js会话

我有3个在Windows Azure上运行的Node.js工作者angular色的实例。 我试图维护所有实例之间的会话。 Azure队列似乎是推荐的方法,但是如何确保所有实例都接收到会话,因为一旦单个实例已经退出队列,队列就会删除会话? Azure表不适合我的应用程序,因为会话过于频繁,不需要存储超过10秒钟。

Azure nodejs sdk:队列消息侦听器的长轮询

只有当消息可用时,是否可以创build一个消息侦听器来从服务总线队列(而不是存储队列)接收消息? 其实我的实现包含一个调用接收操作的setInterval函数: var service = azure.createServiceBusService( azureEnpoint ); var repeat = function() { service.receiveQueueMessage(me.name, function (error, receivedMessage) { if (!error) { logger.debug(receivedMessage, "Received message from queue "+ me.name); callback(error, receivedMessage); } }); } setInterval(repeat, me.pollingInterval); 谢谢

RSQM – 手动轮询?

我们正在重组我们最大的项目之一。 整个项目build立在一个Node.js / PHP混合环境中,并且相当分散。 这就是为什么我们打算使用排队进行各种服务。 我们在这个系统中广泛地使用了Redis,所以我遇到了RSMQ( http://smrchy.github.io/rsmq/ ),我试图实现它。 我的问题是:我如何实际使用这个队列实现一个工作任务或类似的? 据我了解,它与SQS非常类似,没有任何开销 – 我喜欢,但我不太清楚如何真正完成工作。 到目前为止,我的方法(简化)看起来像这样: RQ = require("rsmq"); queue = new RQ( {host: "127.0.0.1", port: 6379, ns: "nDispatch"} ); queue.receiveMessage({qname:"mq"}, function() { // code here }); 但问题是 – 我必须手动轮询队列吗? 有没有消息事件或类似?