2014-01-18 4 views
2

Мне жаль, что у меня не было больше информации, чтобы поставить здесь, но я вроде как просто изгоняю сети и надеюсь, что у кого-то есть идеи о том, что я могу попробовать или в каком направлении посмотреть. В основном у меня есть приложение rails, которое использует отложенные задания. Он выгружает процесс, который занимает около 10 или 15 минут для фоновой задачи. Он работал до вчерашнего дня. Теперь каждый раз, когда я вхожу на сервер, я обнаружил, что никаких запущенных процессов выполнения не выполняется. Я перезапустил, остановился, начал и т. Д. Дюжину раз, и я никуда не уйду. Во-вторых, он пытается обработать первый элемент в очереди, процесс убивается, и ничто не регистрируется в файле журнала.delayed_job процесс молча закрывается

Я попытался запустить его так:

RAILS_ENV=production script/delayed_job run 

Вместо обычного демона:

RAILS_ENV=production script/delayed_job start 

и что не дали мне больше информации. Вот вывод:

delayed_job: process with pid 4880 started. 
Killed 

Он работает, вероятно, за 10 секунд до того, как он просто убьет. Я не знаю, с чего начать. Я пробовал несколько вещей, таких как понижение демона gem до 1.0.10, как это было предложено в других сообщениях.

Любые идеи были бы замечательными.

+0

Вы проверили ошибки 'log/production.log' и' log/delayed_job.log' для ошибок? возможно, просто попробуйте загрузить его в «нормальном» режиме и посмотреть, отображаются ли ошибки в терминале «RAILS_ENV = производственный пакет exec rake jobs: work» - также я обычно загружаю скрипт вместе с пакетом, то есть 'RAILS_ENV = производственный пакет exec script/delayed_job start' – house9

+0

также имеет ли сервер достаточную мощность для запуска ваших рабочих мест? вы также используете этот аппарат для обслуживания веб-запросов? – house9

+1

Эй, я полагаю, ты прибил его на голову своим вторым комментарием. Недавно я определил размер коробки с 2 гб до 1 гб. Я балансирую нагрузку между более узкими (1 гб) узлами. Я считаю, что этот процесс переваривает все баран, а ОС убивает его. Я определил размер коробки до 2 гб, и теперь она работает! Похоже, мне нужно найти способ сделать скрипт более эффективным. Его тянет около 3 миллионов записей и делает некоторое количество хрустов на нем. Это нужно сделать только один раз в неделю, поэтому его трудно оправдать наличием такого большого пространства для печати. Ну, проблема решена на данный момент! благодаря! – Sean

ответ

2

Решение этого в случае, если кто-то еще сталкивается с этим, заключается в том, что он просто исчерпал память, и ОС убила его.

Я выполнял задания пару раз и смотрел сверху во время ожидания. Я видел, как использование памяти для этого pid медленно поднималось, пока процесс не был убит, и вся память была выпущена.

Надеюсь, что это может помочь кому-то.

Смежные вопросы