Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 3 服务器上生产环境中的延迟作业失败_Ruby On Rails 3_Delayed Job - Fatal编程技术网

Ruby on rails 3 服务器上生产环境中的延迟作业失败

Ruby on rails 3 服务器上生产环境中的延迟作业失败,ruby-on-rails-3,delayed-job,Ruby On Rails 3,Delayed Job,我在rails应用程序中使用delayed_job gem发送电子邮件。 延迟的_作业工作正常,但从过去5天开始,它不工作,并在delayed_job.log文件中抛出以下错误 2011-10-09T01:53:04+0530: [Worker(delayed_job host:backupserver pid:23953)] Syck::DomainType#private_group_join_request failed with NoMethodError: undefined meth

我在rails应用程序中使用delayed_job gem发送电子邮件。 延迟的_作业工作正常,但从过去5天开始,它不工作,并在delayed_job.log文件中抛出以下错误

2011-10-09T01:53:04+0530: [Worker(delayed_job host:backupserver pid:23953)] Syck::DomainType#private_group_join_request failed with NoMethodError: undefined method private_group_join_request' for # - 11 failed attempts 2011-10-09T01:53:04+0530: [Worker(delayed_job host:backupserver pid:23953)] 1 jobs processed at 1.4503 j/s, 1 failed ... 2011-10-09T01:54:40+0530: [Worker(delayed_job host:backupserver pid:23953)] Syck::DomainType#contact_us_email failed with NoMethodError: undefined method contact_us_email for # - 11 failed attempts 2011-10-09T01:54:40+0530: [Worker(delayed_job host:backupserver pid:23953)] 1 jobs processed at 4.3384 j/s, 1 failed ... 我要开始一份工作了

RAILS_ENV=production script/delayed_job start
它在我的本地机器上的开发和生产环境中正常工作

我在Rails应用程序中使用的环境

  • Rails 3.0.8
  • Linux中的Ruby 1.9.2(Ubuntu)
  • rake 0.9.2
  • 延迟工作2.1.4
这和


但解决方案对我不起作用。

部署一些新代码时,是否可能没有停止并启动延迟的工作人员?如果在部署之前运行的工作进程正在尝试运行新方法,则它将失败。

部署一些新代码时,是否可能没有停止并启动延迟的\u作业工作进程?如果在部署之前运行的工作进程尝试运行新方法,它将失败。

工作进程中运行的YAML(或Syck)是否可能不知道所讨论的方法?看看:

。。。有关部分是:

反序列化错误的一个常见原因是YAML引用 工人不知道的类。如果是这种情况,您可以添加

# file: config/initializers/custom.rb
require 'my_custom_class'
这将在工作程序启动时强制加载我的\u自定义\u类

工作进程中运行的YAML(或Syck)是否可能不知道所讨论的方法?看看:

。。。有关部分是:

反序列化错误的一个常见原因是YAML引用 工人不知道的类。如果是这种情况,您可以添加

# file: config/initializers/custom.rb
require 'my_custom_class'
这将在工作程序启动时强制加载我的\u自定义\u类


我不得不手动在生产服务器上重新启动我的unicorns,因为出于某种原因,cap deploy没有为我这样做

所以我要做的是:

sudo /etc/init.d/unicorn_myapp stop
sudo /etc/init.d/unicorn_myapp start
但独角兽无法启动,所以我不得不

sudo rm /tmp/unicorn.my_app.sock


我不得不手动在生产服务器上重新启动我的unicorns,因为出于某种原因,cap deploy没有为我这样做

所以我要做的是:

sudo /etc/init.d/unicorn_myapp stop
sudo /etc/init.d/unicorn_myapp start
但独角兽无法启动,所以我不得不

sudo rm /tmp/unicorn.my_app.sock


我想出来了。这是由于包“libyaml”造成的,该包在我的本地系统上不存在,但安装在服务器上。

我找到了它。这是由于包“libyaml”的缘故,该包在我的本地系统上不存在,但安装在服务器上。

对于#的“未定义方法foo”是很奇怪的——通常这类事情是说对于nil的未定义方法foo,然后问题是该函数是在nil对象上调用的。你知道在你的环境中“#”指的是什么吗?我找到了延迟工作失败的原因。根据中给出的,失败的原因是libyaml包。包已安装在服务器上,但未安装在我的本地计算机上。现在我已经在我的本地机器上安装了相同的软件包,它给了我相同的错误。这个错误是在数据库数据反序列化时出现的。Kaplesh:你最好回答你自己的问题,让它显示为已回答,其他人会从你如何修复它中受益。“未定义的方法foo for#”很奇怪——通常这类事情是说未定义的方法foo for nil,然后问题是函数是在一个nil对象上调用的。你知道在你的环境中“#”指的是什么吗?我找到了延迟工作失败的原因。根据中给出的,失败的原因是libyaml包。包已安装在服务器上,但未安装在我的本地计算机上。现在我已经在我的本地机器上安装了相同的软件包,它给了我相同的错误。这个错误是在数据库数据反序列化时出现的。Kaplesh:你最好回答你自己的问题,让它显示为已回答,其他人会从你如何修复它中受益。这会是什么样子?”必需的“用户”?那会加载用户模型吗?@hellion:close。尝试
要求“用户”
——当然,这取决于路径设置是否正确等等。我对你的环境了解不够,无法给你一个完整的答案。谢谢你的回复@fearless-fool。这会是什么样子?”必需的“用户”?那会加载用户模型吗?@hellion:close。尝试
要求“用户”
——当然,这取决于路径设置是否正确等等。我对你的环境了解不够,无法给你一个完整的答案。谢谢你的回答:“无畏的傻瓜”。