gpt4 book ai didi

Ruby 和 Redis,线程不处理命令

转载 作者:IT王子 更新时间:2023-10-29 06:05:52 24 4
gpt4 key购买 nike

我正在使用 redis 和 ruby​​ 并尝试在线程中发出 blpop,这样我就可以等待列表中的传入项。

问题是 blpop block 中的代码似乎从未被调用过。这是我正在运行的示例代码 (ruby 1.9.3):

require 'rubygems'
require 'redis'

def start_thread
@thread = Thread.new do
r = Redis.new
r.blpop("test", 0) do |key, message|
process_message(key, message)
end
end
redis = Redis.new
redis.rpush "test", "hello world"
end

def process_message(key, message)
@message = "#{key} was sent #{message}"
end

start_thread
@thread.join
p @message

非常感谢任何帮助!

最佳答案

require 'rubygems'
require 'redis'

def start_thread
@thread = Thread.new do
r = Redis.new
key, message = r.blpop(:test, 0)
process_message(key, message)
end
redis = Redis.new
redis.rpush :test, "hello world"
end

def process_message(key, message)
@message = "#{key} was sent #{message}"
end

start_thread
@thread.join
p @message

关于Ruby 和 Redis,线程不处理命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12651095/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com