Java кажется подвешенным

Чтобы быстро заставить его работать, вы можете просто сделать что-то вроде:

function mapStateToProps(state) {

    const employees = state.firestore.ordered.employees;

    const schedules = employees
        ? employees.map(employee => ({
            id: employee.id,
            name: {
                first: employee.name.first,
                last: employee.name.last
            },
            schedule: [null, null, null, null, null, null, null]
        }))
        : undefined;

    const rota = {
        id: null,
        date: moment(),
        notes: null,
        events: [null, null, null, null, null, null, null],
        published: null,
        body: schedules
    };

    return { rota }
}

Затем, в своем компоненте, вы можете проверить атрибут расписаний объекта ротации и, если он все еще не определен, визуализировать что-то, чтобы указать, что данные еще не загружены.

Тем не менее, введение такой сложной логики в mapStateToProps является для меня антипаттерном. Вы можете использовать шаблон селектора, чтобы сделать ваш код более организованным.

6
задан Vadzim 26 December 2012 в 19:40
поделиться

4 ответа

У меня была пара различных версий библиотеки по пути к классу (JBPM). С оберткой можно использовать подстановочные знаки для включения банок. Будьте осторожны с этим, хотя, поскольку можно случайно включать больше, чем Вы, должен.

Вот статья IBM, которая дает информацию об отладке, зависает в Java. Это в основном говорит, что существует две вещи, которые могут вызвать, зависает:

  1. Бесконечный цикл,
  2. Мертвая блокировка.

С тех пор я должен был отладить другие проблемы зависания. На Linux можно отправить JVM сигнал ВЫХОДА заставить его сделать дамп потока к консоли. Это действительно помогает выяснению, где проблема. Используйте эту команду, чтобы сделать это: уничтожьте - ВЫХОД

Редактирование 13.06.2017

В эти дни я использую jmap, включенный в JDK для дампа всей памяти программы. Затем я использую Память Eclipse Анализатор для наблюдения точного состояния программы, когда это отказало. Можно посмотреть на список потоков, которые активны и затем осматривают переменные в каждом стековом фрейме.

/usr/java/latest/bin/jmap -dump:file=/tmp/app-crash.hprof <PID>

Где PID является идентификатором процесса процесса Java.

1
ответ дан 8 December 2019 в 18:42
поделиться

Читайте на wrapper.ping.timeout свойстве. Программное обеспечение обертки общается с Вашей JVM время от времени, чтобы удостовериться, что это живо. Если та коммуникация перестала работать по любой причине, обертка считает процесс подвешенным и пытается перезапустить его.

В зависимости от того, как проектируется Ваше приложение, Ваша JVM могла бы быть занятой, обработав что-то еще, когда обертка пытается "проверить с помощью ping-запросов" его.

9
ответ дан 8 December 2019 в 18:42
поделиться

Посмотрите, можно ли использовать Визуальный VM для наблюдения то, что продолжается. Имейте Визуальный монитор VM приложение в течение всего времени и когда это прекращает работать, возможно, можно определить что не так.

Если VM зависает, можно получить состояние потоков... Я думаю, что Визуальный VM сделает это немного легче, учитывая Вашу установку, чем обычный ctrl-break (или whatver, который ключевая комбинация).

(Редактирование на основе комментария)

Попробованный это. В прошлый раз это подвесило количество потоков, и используемый объем памяти были довольно низкими, таким образом, ни один из тех не вызывает проблему. К сожалению после того, как это зависает, и обертка завершает его, Вы не можете получить дамп потока.

Есть ли какой-либо способ, которым можно выполнить его без обертки для отладки его? Также при использовании профилировщика NetBeans, это могло бы дать Вам шанс иметь дело с ним, когда это остановится (я буду проверять позже сегодня и видеть, могу ли я узнать, вело ли это себя по-другому).

2
ответ дан 8 December 2019 в 18:42
поделиться

В какой среде Вы? ОС, версия JVM, аппаратная архитектура?

Это действительно походит на ошибку, и, учитывая, что требуется много часов, это походит на какую-то ошибку исчерпания ресурса.

1
ответ дан 8 December 2019 в 18:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: