Окончание запланированной задачи Backgroundrb

У меня есть запланированное задание backroundrb, выполнение которого занимает довольно много времени. Однако кажется, что процесс заканчивается через 2,5 минуты.

Мой файл background.yml:

:schedules:
  :named_worker:
    :task_name:
      :trigger_args: 0 0 12 * * * *
      :data: input_data

У меня нулевая активность на сервере, когда процесс запущен. (Это означает, что я единственный на сервере, наблюдающий за тем, как файлы журналов делают свое дело, пока процесс внезапно не остановится.)

Есть идеи?

2 ответа

Решение

Здесь не так много информации, которая позволяет нам понять суть проблемы. Поскольку backgroundrb работает в фоновом режиме, это может быть довольно сложно отслеживать / отлаживать.

Вот несколько идей, которые я использую:

  1. Напишите модульный тест, чтобы проверить сам рабочий код и убедиться, что там нет проблем.
  2. Поместите "ставит" операторы в нескольких точках кода, чтобы вы могли хотя бы увидеть некоторые ответы, пока рабочий работает.
  3. Оберните весь рабочий элемент в блок begin..rescue..end, чтобы вы могли отследить любые возможные ошибки и сократить процесс.

Спасибо, Андрей. Эти советы по отладке помогли. Особенно начало.. спасение.. конец блока.

Это все еще было проблемой для отладки. В конце концов, это не был BackgroundRB, сокращающийся через 2,5 минуты. Было установлено сетевое соединение, которое не было закрыто должным образом. Как только это было найдено и закрыто, все прекрасно работает.

Другие вопросы по тегам