草庐IT

Asynchronous

全部标签

ruby - EventMachine、Redis 和 EM HTTP 请求

我尝试从Redis存储中读取URL并简单地获取URL的HTTP状态。全部在EventMachine中。我不知道我的代码有什么问题,但它并不像预期的那样异步。所有请求都是从第一个到最后一个发出的,奇怪的是我只在最后一个请求之后得到第一个响应(我想检查的HTTPheader)。有没有人暗示那里出了什么问题?require'eventmachine'require'em-hiredis'require'em-http'EM.rundo@redis=EM::Hiredis.connect@redis.errbackdo|code|puts"Errorcode:#{code}"end@redis

ruby - EventMachine、Redis 和 EM HTTP 请求

我尝试从Redis存储中读取URL并简单地获取URL的HTTP状态。全部在EventMachine中。我不知道我的代码有什么问题,但它并不像预期的那样异步。所有请求都是从第一个到最后一个发出的,奇怪的是我只在最后一个请求之后得到第一个响应(我想检查的HTTPheader)。有没有人暗示那里出了什么问题?require'eventmachine'require'em-hiredis'require'em-http'EM.rundo@redis=EM::Hiredis.connect@redis.errbackdo|code|puts"Errorcode:#{code}"end@redis

node.js - 使用node序列化redis数据

我正在使用redis和Node(使用node_redis),我想将数据从redis序列化为XML文件(使用simple-xml-writer),但我偶然发现了Node的异步行为。我将a、b、c、d和e的数据集存储为redis中的散列,键是数据:a,数据:b数据:c...,每个键访问一个散列。现在我的XML文件应该如下所示:(datafora)(dataforb)...我的方法是做类似的事情:myobjects=Array.new();["a","b","c","d","e"].forEach(function(str){database.hmget("data:"+str,functi

node.js - 使用node序列化redis数据

我正在使用redis和Node(使用node_redis),我想将数据从redis序列化为XML文件(使用simple-xml-writer),但我偶然发现了Node的异步行为。我将a、b、c、d和e的数据集存储为redis中的散列,键是数据:a,数据:b数据:c...,每个键访问一个散列。现在我的XML文件应该如下所示:(datafora)(dataforb)...我的方法是做类似的事情:myobjects=Array.new();["a","b","c","d","e"].forEach(function(str){database.hmget("data:"+str,functi

ruby-on-rails - rails、redis 和 node.js 的请求处理是如何异步的?

对于web开发,我想混合使用rails和node.js,因为我想充分利用这两个世界(rails用于快速web开发,node.js用于并发)。我知道有些人选择只使用完整的ruby​​堆栈和集成到railsController中的eventmachine,这样每个请求都可以通过在事件循环模型中使用fiber来实现非阻塞。我已经能够从宏观上理解它是如何运作的。不过此时我想尝试使用具有消息队列概念的rails和node.js进行非阻塞请求处理。听说这可以通过使用redis作为中介来实现。到目前为止,我仍然无法弄清楚它是如何工作的。据我所知:所以我们有2个应用程序A(rails)和B(node.

ruby-on-rails - rails、redis 和 node.js 的请求处理是如何异步的?

对于web开发,我想混合使用rails和node.js,因为我想充分利用这两个世界(rails用于快速web开发,node.js用于并发)。我知道有些人选择只使用完整的ruby​​堆栈和集成到railsController中的eventmachine,这样每个请求都可以通过在事件循环模型中使用fiber来实现非阻塞。我已经能够从宏观上理解它是如何运作的。不过此时我想尝试使用具有消息队列概念的rails和node.js进行非阻塞请求处理。听说这可以通过使用redis作为中介来实现。到目前为止,我仍然无法弄清楚它是如何工作的。据我所知:所以我们有2个应用程序A(rails)和B(node.

ruby-on-rails - Sidekiq 中的民主队列

用户可以创建一个包含多个任务的Project对象。当用户告诉项目执行时,所有这些任务都会被放入Sidekiq的默认队列中。问题是:如果用户创建一个包含1000个任务的项目并点击execute按钮,所有这1000个任务都会被放入队列中。如果在那之后,另一个用户创建了一个只有一个任务的项目,当他点击执行这个项目时,它的唯一任务被放在行尾。我希望后台进程以更民主的方式工作。如果每个项目都有自己的队列,那么第二个项目中的一个任务可能会在1000个任务队列结束之前执行。为此,我需要为每个项目单独设置队列,而且应该是动态创建的。我正在尝试使用以下而不是perform_async来完成此操作:Sid

ruby-on-rails - Sidekiq 中的民主队列

用户可以创建一个包含多个任务的Project对象。当用户告诉项目执行时,所有这些任务都会被放入Sidekiq的默认队列中。问题是:如果用户创建一个包含1000个任务的项目并点击execute按钮,所有这1000个任务都会被放入队列中。如果在那之后,另一个用户创建了一个只有一个任务的项目,当他点击执行这个项目时,它的唯一任务被放在行尾。我希望后台进程以更民主的方式工作。如果每个项目都有自己的队列,那么第二个项目中的一个任务可能会在1000个任务队列结束之前执行。为此,我需要为每个项目单独设置队列,而且应该是动态创建的。我正在尝试使用以下而不是perform_async来完成此操作:Sid

javascript - 等待 promise 从父函数解析

我的Node应用程序中有一个主线程,如下所示:functionmain_thread(){console.log("Starting");values=get_values(1);console.log(values);console.log("Iexpecttobeafterthevalues");}get_values函数使用node_redis调用hgetall函数包裹。此函数提供回调,但可以被promise:functionget_values(customer_id){//UsesacallbackforresultnewPromise(function(resolve,re

javascript - 等待 promise 从父函数解析

我的Node应用程序中有一个主线程,如下所示:functionmain_thread(){console.log("Starting");values=get_values(1);console.log(values);console.log("Iexpecttobeafterthevalues");}get_values函数使用node_redis调用hgetall函数包裹。此函数提供回调,但可以被promise:functionget_values(customer_id){//UsesacallbackforresultnewPromise(function(resolve,re