【问题标题】:Sailsjs - Hook orm taking too long to load - ModulusSailsjs - Hook orm 加载时间过长 - 模数
【发布时间】:2015-06-22 21:38:06
【问题描述】:

我使用sails.js 制作了一个nodejs 应用程序。它在我的本地主机中运行良好。当我尝试在服务器(模数)中发布它时,问题出现在生产中。你可以看看下面的错误。

Error: The hook `pubsub` is taking too long to load.
Make sure it is triggering its `initialize()` callback, or else set `sails.config.pubsub._hookTimeout to a higher value (currently 20000)
    at tooLong [as _onTimeout] (/mnt/data/1/ApiDevConf-master/node_modules/sails/lib/app/private/loadHooks.js:92:21)
    at Timer.listOnTimeout (timers.js:110:15) { [Error: The hook `pubsub` is taking too long to load.
Make sure it is triggering its `initialize()` callback, or else set `sails.config.pubsub._hookTimeout to a higher value (currently 20000)] code: 'E_HOOK_TIMEOUT' }

我试图找出解决问题的方法,但没有任何效果。我正在尝试这样的想法here

我也正确设置了NODE_ENV = production

感谢您的宝贵时间。

【问题讨论】:

    标签: node.js sails.js modulus


    【解决方案1】:

    听起来这可能是两个问题之一。

    1.) 您需要将config/model.js 中的迁移设置设置为alter 之外的其他设置。您应该在生产模式下启用migrate: 'safe'。如果 NODE_ENV 变量设置为 production,这应该会自动发生。

    超时的原因是每次启动服务器时,Sails 都会尝试将现有数据迁移到当前架构。显然不希望在生产中使用它。

    2.) 你有很多文件要加载,而 Modulus 从它的虚拟磁盘读取它们的速度很慢。这是一个更大的问题,因为每次需要重新启动服务器时都需要很长时间才能启动服务器。您可以提高全局超时限制,这应该会给您更多时间。为此,请将以下内容添加到您的 config/env/production.js 文件中:

    module.exports = {
      hookTimeout: 40000
    }
    

    【讨论】:

    • 嘿@particlebanana 我添加了migrate: 'safe',什么也没有。我也尝试了第二个选项但不起作用..如果我在 github 上与您分享我的代码会有所帮助吗?¿ (devconf-45442.onmodulus.net)
    • 是的,如果你有一个很棒的 github 链接
    • 可能是一个愚蠢的事情..但我找不到它是什么。 github.com/gon250/ApiDevConf@particlebanana 谢谢!
    • 有什么建议吗? @particlebanana
    • @gon250 在那个项目中你仍然有migrate: 'alter'。你能设置migrate: 'safe'吗?你可以尝试将hookTimeout移动到config/env/development.js看看是否有效。可能是环境实际上没有设置。也可以尝试增加一些。一切看起来都不错。
    猜你喜欢
    • 2015-04-15
    • 2017-06-12
    • 1970-01-01
    • 2021-07-19
    • 1970-01-01
    • 2012-08-23
    • 2016-06-20
    • 2016-02-17
    • 1970-01-01
    相关资源
    最近更新 更多