gpt4 book ai didi

ruby-on-rails - delayed_job 通过 drb 服务器与 acts_as_ferret 对话导致关闭流错误

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

我正在使用 delayed_job 来处理一些文件,然后用结果创建一些 activerecord 对象。 activerecord 对象正在使用作为 drb 服务器运行的 acts_as_ferret 进行索引。当 delayed_job 处理作业时,一切正常,直到事件记录尝试通过 drb 服务器与 ferret 对话。

堆栈跟踪在这里:http://pastie.org/693588

通过控制台或不使用 delayed_job 调用相同的进程是成功的。我的猜测是由于某种原因,可能与权限相关,delayed_job 无法与 drb 服务器通信,但不确定。知道发生了什么事吗?

最佳答案

哇——我在 11 月 5 日发布了同样的问题。所以,至少我必须在正确的 rails 上! :)

DelayedJob with acts_as_ferret in production mode

为了帮助为问题提供更多背景信息:- 我没有编写任何特殊代码。模型都有

acts_as_ferret :remote => true

ferret_server 初始化器和往常一样:

$ cat config/ferret_server.yml 
# configuration for the acts_as_ferret DRb server
# host: where to reach the DRb server (used by application processes to contact the server)
# port: which port the server should listen on
# pid_file: location of the server's pid file (relative to RAILS_ROOT)
# log_file: log file (default: RAILS_ROOT/log/ferret_server.log
# log_level: log level for the server's logger
production:
host: localhost
port: 9010
pid_file: log/ferret.pid
log_file: log/ferret_server.log
log_level: warn

我能够运行其他不修改记录但收集数据的 delayed_job - 所以 delayed_job 有效。这是我拥有的 delayed_job 生成器:

$ cat script/delayed_job 
#!/usr/bin/env ruby

ENV['RAILS_ENV'] = 'production'
require File.expand_path(File.join(File.dirname(__FILE__), '..', 'config', 'environment'))
require File.expand_path(File.join(File.dirname(__FILE__), '..', 'config', 'boot'))
require 'delayed/command'

Delayed::Command.new(ARGV).daemonize

关于ruby-on-rails - delayed_job 通过 drb 服务器与 acts_as_ferret 对话导致关闭流错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1715268/

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