gpt4 book ai didi

ruby - 在没有 Rakefile 的情况下运行 resque

转载 作者:太空宇宙 更新时间:2023-11-03 16:43:37 25 4
gpt4 key购买 nike

我已经构建了自己的作业服务器,它本质上是一个私有(private) gem,构建为围绕 resque 的包装器.

(我没有在 Rails 环境中运行它)

在我看来,启动 worker 的记录/推荐方式似乎是这样的:

$ QUEUE=* rake resque:work

这意味着它必须在 Rakefile 所在的文件夹中执行。

我正在寻找一种无需 Rakefile 即可启动它的方法。

到目前为止我学到了什么:

  • 我已经查看了 issues , 也许有人问过类似的问题。
  • 我已经查看了 wiki ,特别是 FAQ .
  • 我知道我可以通过分析 tasks file 创建我自己的“bin”来运行它而不需要 rake。 .
  • 我看到 resque 安装了一个 resque 二进制文件,但它似乎只提供了有限的功能,比如删除和列出一个 worker,但没有启动。
  • 我目前的解决方法是我的 gem 的二进制文件在运行之前对 gem 的文件夹执行 chdir(并且这个文件夹有一个 Rakefile),如下面的代码。

def start_worker
ENV['QUEUE'] = '*'
Dir.chdir gemdir do
exec "rake resque:work"
end
end

def gemdir
File.expand_path "../../", __dir__
end

感谢任何朝着正确方向的插入。

最佳答案

我为此制定的当前解决方案:

def start_worker
interval = 5
queue = '*'

ENV['QUEUE'] = queue
worker = Resque::Worker.new
Resque.logger = Logger.new STDOUT
Resque.logger.level = Logger::INFO

## this is not yet implemented in 1.26.0, keeping here as a reminder
# worker.prepare

worker.log "Starting worker"
worker.work interval
end

这是对 code from the rake task 的改编

作为引用,我还开了一个github issue ,以防其他人也需要此类功能。

关于ruby - 在没有 Rakefile 的情况下运行 resque,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39083764/

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