Sails.js + MongoDB при подъеме часто выдают ошибку `orm`, загрузка занимает слишком много времени

Почему ошибка

`Error: The hook 'orm' is taking too long to load.` 

Это очень часто происходит при подъеме парусов? Даже если orm timeout уже установлено на 100000, это все еще иногда происходит (не всегда). Обычно это происходит после перезагрузки ПК и запуска парусов в первый раз.

Это также часто происходит на облачном сервере и моем ноутбуке рядом с моим ПК. Итак, это происходит в моей тестовой среде:

  • Windows 8.1 (ПК и ноутбук) и Linux (Ubuntu 14.04)
  • node.js версии 0.10.38
  • паруса версия 0.11
  • МонгоДБ версии 3

Полный отчет об ошибке выглядит так

error: Error: The hook `orm` is taking too long to load.
Make sure it is triggering its `initialize()` callback, or else set `sails.config.orm._hookTimeout to a higher value (currently 20000)
  at [object Object].tooLong [as _onTimeout] (D:\Workspace\Hellowin\cannes\node_modules\sails\lib\app\private\loadHooks.js:92:21)
  at Timer.listOnTimeout [as ontimeout] (timers.js:112:15) { [Error: The hook `orm` is taking too long to load.
Make sure it is triggering its `initialize()` callback, or else set `sails.config.orm._hookTimeout to a higher value (currently 20000)] code: 'E_HOOK_TIMEOUT' }

D:\Workspace\Hellowin\cannes\node_modules\sails\node_modules\async\lib\async.js:30
        if (called) throw new Error("Callback was already called.");
                          ^
Error: Callback was already called.
  at D:\Workspace\Hellowin\cannes\node_modules\sails\node_modules\async\lib\async.js:30:31
  at process._tickDomainCallback (node.js:492:13)

Это ошибка адаптера MongoDB?


person Andi N. Dirgantara    schedule 29.07.2015    source источник
comment
mongod работает? Можно ли получить доступ к базе данных через командную строку?   -  person galactocalypse    schedule 30.07.2015
comment
MongoDB работает хорошо. Я имею в виду, что это часто выдает ошибку, не всегда. Итак, после ошибки я снова запускаю sails lift или node app.js, иногда работает иногда нет. Также после того, как я установил тайм-аут на 100000, иногда он все еще терпит неудачу.   -  person Andi N. Dirgantara    schedule 30.07.2015
comment
Я думаю, что какой-то другой процесс потребляет ресурсы вашего компьютера. Совершенно невозможно продолжать работу с такой конфигурацией, если лифт часто выходит из строя. Вам следует попробовать освободить ресурсы вашего компьютера.   -  person galactocalypse    schedule 30.07.2015
comment
Неужели Sails + MongoDB используют такой высокий ресурс? Мой компьютер i3 с оперативной памятью 8 ГБ.   -  person Andi N. Dirgantara    schedule 30.07.2015
comment
Паруса + MongoDB совсем невысокие. Я говорил о других процессах, которые могут занимать ваши ресурсы. Я использую 3 экземпляра Sails с Mongodb на ноутбуке с 4 ГБ ОЗУ и все еще могу делать чертовски много других вещей. Посмотрите, какие другие процессы потребляют вашу оперативную память/процессор.   -  person galactocalypse    schedule 30.07.2015
comment
Но почему это также может происходить и на моем облачном сервере? Я использую Ubuntu 14.04 с 1 процессором и 1 ГБ оперативной памяти.   -  person Andi N. Dirgantara    schedule 30.07.2015
comment
В этом случае ваша база данных может быть слишком тяжелой. Правильно ли он подключается, если вы пытаетесь использовать новую базу данных?   -  person galactocalypse    schedule 30.07.2015
comment
Кроме того, ваш hookTimeout по-прежнему отображается как 20000.   -  person galactocalypse    schedule 30.07.2015
comment
Да, это также часто выдает ошибку, даже если я сбрасываю всю свою базу данных (из свежей). Как я уже сказал, даже если я перехожу на 100000, все равно в конечном итоге выдается ошибка.   -  person Andi N. Dirgantara    schedule 30.07.2015
comment
привет @ AndiN.Dirgantara, у тебя есть какое-нибудь решение? Я также сталкиваюсь с той же проблемой, я использую паруса с последовательностью с MySQL. Локально работает нормально, но на сервере та же ошибка. Вы использовали сиквел с хуками?   -  person Vishnu Mishra    schedule 09.12.2015
comment
Я точно не знаю, ошибка это или что-то в этом роде, но тогда я использую PM2 и добавляю время ожидания гораздо больше, например 100000000. Таким образом, у него очень большое время ожидания, а также, если он все еще терпит неудачу, он перезапускается PM2.   -  person Andi N. Dirgantara    schedule 09.12.2015


Ответы (1)


Недавно я столкнулся с той же ошибкой и обнаружил синтаксическую ошибку в одной из моих моделей. Теперь он работает нормально. ТАК в основном эта ошибка возникает из-за некоторой ошибки, связанной с базой данных. вы можете проверить свои модели, подключение и т. д.

person Ahsan Ahmad Raheel    schedule 20.10.2016