有人可以解释一下 QUEUE=* rake resque:work 这个词吗
Can someone explain the term QUEUE=* rake resque:work
Ruby Rails 我需要开始一个 'rescue' 任务。
要让它工作,必须在新终端 (macOS) 中执行命令 QUEUE=* rake resque:work
。
但是:有人能解释一下这到底是什么意思吗?
resque worker 将继续轮询 redis 队列以等待待处理的作业。因此,我们需要在启动任务时将队列名称作为参数传递给重新请求任务。 QUEUE=*
在这里做同样的事情。
所以,在这里您的问题可以分解为 2 个部分,
QUEUE
的目的是什么
*
的目的是什么
QUEUE
:
在 ruby 中,我们可以通过 4 种方式做到这一点。
耙参数:
rake resque:work[*]
为了使这个工作重新请求任务应该有以下约定
task :work, [:queues] do |t, args|
queues = args[:queues]
#do some thing with queues
end
ARGV:
rake resque:work *
为了使这个工作重新请求任务应该像
task :work do
ARGV.each { |a| task a.to_sym do ; end } # to prevent multiple tasks
queues = ARGV[0]
# do some thing with the queues
end
选项:
rake resque:work --queues=*
任务又应该是这样的,
task :work do
options = {}
OptionParser.new do |opts|
opts.banner = "Usage: rake add [options]"
opts.on("-q", "--queues ARG", String) { |queues| options[:queues] = queues }
end.parse!
# do some thing with options[:queues]
end
环境变量:
QUEUE=* rake resque:work
这个任务应该是这样的,
task :work do
#use ENV['queues']
end
我们的 resque 库为此使用了第 4 种方法。因此,您实际上是在此处使用 QUEUE=*
.
设置环境变量
同样的我们可以使用下面的代码分成两行。
export QUEUE=*
rake resque:work
现在进入*部分:
*
是一个通配符char,告诉resque监听redis中的所有队列。但优先级将按字母顺序排列。如果您不想要这个,我们也可以调用具有特定队列的任务,例如
QUEUES="queue1,queue2" rake resque:work
所以,这里的resque任务只会从queue1和queue2中拉取作业,其中queue1的优先级高
rake resque:work
:
rake
: 是启动任务的命令
resque
: 是将任务分组在一个名称下的命名空间
work
: 是任务名
Ruby Rails 我需要开始一个 'rescue' 任务。
要让它工作,必须在新终端 (macOS) 中执行命令 QUEUE=* rake resque:work
。
但是:有人能解释一下这到底是什么意思吗?
resque worker 将继续轮询 redis 队列以等待待处理的作业。因此,我们需要在启动任务时将队列名称作为参数传递给重新请求任务。 QUEUE=*
在这里做同样的事情。
所以,在这里您的问题可以分解为 2 个部分,
QUEUE
的目的是什么
*
的目的是什么
QUEUE
:
在 ruby 中,我们可以通过 4 种方式做到这一点。
耙参数:
rake resque:work[*]
为了使这个工作重新请求任务应该有以下约定
task :work, [:queues] do |t, args| queues = args[:queues] #do some thing with queues end
ARGV:
rake resque:work *
为了使这个工作重新请求任务应该像
task :work do ARGV.each { |a| task a.to_sym do ; end } # to prevent multiple tasks queues = ARGV[0] # do some thing with the queues end
选项:
rake resque:work --queues=*
任务又应该是这样的,
task :work do options = {} OptionParser.new do |opts| opts.banner = "Usage: rake add [options]" opts.on("-q", "--queues ARG", String) { |queues| options[:queues] = queues } end.parse! # do some thing with options[:queues] end
环境变量:
QUEUE=* rake resque:work
这个任务应该是这样的,
task :work do #use ENV['queues'] end
我们的 resque 库为此使用了第 4 种方法。因此,您实际上是在此处使用 QUEUE=*
.
同样的我们可以使用下面的代码分成两行。
export QUEUE=*
rake resque:work
现在进入*部分:
*
是一个通配符char,告诉resque监听redis中的所有队列。但优先级将按字母顺序排列。如果您不想要这个,我们也可以调用具有特定队列的任务,例如
QUEUES="queue1,queue2" rake resque:work
所以,这里的resque任务只会从queue1和queue2中拉取作业,其中queue1的优先级高
rake resque:work
:
rake
: 是启动任务的命令
resque
: 是将任务分组在一个名称下的命名空间
work
: 是任务名