1

所以我已经延迟::Job 在生产中运行了一段时间。

每当我改变工作时,我都会(在生产环境中提醒你)

  1. 使用我使用的 [脚本] ( https://github.com/tobi/delayed_job/wiki/Running-Delayed::Worker-as-a-daemon )重新启动延迟作业
  2. 使用清除作业rake jobs:clear

另外,我已经运行了monit,我已经停止了monit,重新启动了脚本,然后按顺序启动了monit……仍然没有骰子。

无论如何,我们都这样做是为了让旧工作从内存中消失,我清除工作队列只是因为这就是我所做的。可能不需要该步骤,在我的应用程序中它不会受到伤害。

但是,由于某种原因,最近使用这些步骤并没有重置我的新工作代码。当我查看我的 job_runner.log 文件时,我在重新启动脚本时收到此错误

*** below you find the most recent exception thrown, this will be likely (but not    certainly) the exception that made the applicati
on exit abnormally ***
#<SystemExit: exit>*** below you find all exception objects found in memory, some of them may have been thrown in your application, others may just be in memory because they are standard exceptions ***
#<NoMemoryError: failed to allocate memory>
#<SystemStackError: stack level too deep>
#<fatal: exception reentered>
#<LoadError: no such file to load -- rubygems/defaults/operating_system>
#<LoadError: no such file to load -- daemons>
#<NameError: uninitialized constant Rails::Plugin::HoptoadNotifier>
#<Errno::ENOENT: No such file or directory - /var/rails/wigify/tmp/pids/job_runner.pid>
#<SystemExit: exit>

所以我不确定发生了什么。堆栈级别太深的错误,是否来自我的代码?我所有的集成测试都通过了,就像他们以前一样。

我的切片有内存问题吗?即使free告诉我我这样做时平均有300MB?

谁能帮帮兄弟?

4

1 回答 1

0

好吧,我认为问题解决了。无论我尝试了 100 次,每次的 ram 都太少,还是没有,但有一次它自己修复了。

不是我想要的答案,但仍然很奇怪。

于 2010-01-29T02:37:56.067 回答