Окончание запланированной задачи Backgroundrb
У меня есть запланированное задание backroundrb, выполнение которого занимает довольно много времени. Однако кажется, что процесс заканчивается через 2,5 минуты.
Мой файл background.yml:
:schedules:
:named_worker:
:task_name:
:trigger_args: 0 0 12 * * * *
:data: input_data
У меня нулевая активность на сервере, когда процесс запущен. (Это означает, что я единственный на сервере, наблюдающий за тем, как файлы журналов делают свое дело, пока процесс внезапно не остановится.)
Есть идеи?
2 ответа
Здесь не так много информации, которая позволяет нам понять суть проблемы. Поскольку backgroundrb работает в фоновом режиме, это может быть довольно сложно отслеживать / отлаживать.
Вот несколько идей, которые я использую:
- Напишите модульный тест, чтобы проверить сам рабочий код и убедиться, что там нет проблем.
- Поместите "ставит" операторы в нескольких точках кода, чтобы вы могли хотя бы увидеть некоторые ответы, пока рабочий работает.
- Оберните весь рабочий элемент в блок begin..rescue..end, чтобы вы могли отследить любые возможные ошибки и сократить процесс.
Спасибо, Андрей. Эти советы по отладке помогли. Особенно начало.. спасение.. конец блока.
Это все еще было проблемой для отладки. В конце концов, это не был BackgroundRB, сокращающийся через 2,5 минуты. Было установлено сетевое соединение, которое не было закрыто должным образом. Как только это было найдено и закрыто, все прекрасно работает.