Meteor.js-mupx部署给我带来了麻烦-我如何解决此错误?

Meteor.js-mupx部署给我带来了麻烦-我如何解决此错误?,meteor,Meteor,我正在使用mupx将meteor应用程序部署到数字海洋。(使用一个5美元的内存为512 MB的微滴) 部署后,mupx返回此错误消息: > mupx deploy Meteor Up: Production Quality Meteor Deployments ------------------------------------------------ Configuration file : mup.json Settings file : settings.json

我正在使用
mupx
将meteor应用程序部署到数字海洋。(使用一个5美元的内存为512 MB的微滴)

部署后,
mupx
返回此错误消息:

> mupx deploy

Meteor Up: Production Quality Meteor Deployments
------------------------------------------------
Configuration file : mup.json
Settings file      : settings.json

Meteor app path    : /Users/me/myapp
Using buildOptions : {}

Started TaskList: Deploy app 'My-App' (linux)
[48.59.198.247] - Uploading bundle
[48.59.198.247] - Uploading bundle: SUCCESS
[48.59.198.247] - Sending environment variables
[48.59.198.247] - Sending environment variables: SUCCESS
[48.59.198.247] - Initializing start script
[48.59.198.247] - Initializing start script: SUCCESS
[48.59.198.247] - Invoking deployment process
[48.59.198.247] - Invoking deployment process: SUCCESS
[48.59.198.247] - Verifying deployment
[48.59.198.247] x Verifying deployment: FAILED

-----------------------------------STDERR-----------------------------------
0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
    curl: (52) Empty reply from server
    npm WARN package.json meteor-dev-bundle@0.0.0 No description
    npm WARN package.json meteor-dev-bundle@0.0.0 No repository field.
    npm WARN package.json meteor-dev-bundle@0.0.0 No README data

    > fibers@1.0.5 install /bundle/bundle/programs/server/node_modules/fibers
    > node ./build.js

    `linux-x64-v8-3.14` exists; testing
    Binary is fine; exiting
    underscore@1.5.2 node_modules/underscore

    semver@4.1.0 node_modules/semver

    eachline@2.3.3 node_modules/eachline
    └── type-of@2.0.1

    chalk@0.5.1 node_modules/chalk
    ├── ansi-styles@1.1.0
    ├── escape-string-regexp@1.0.3
    ├── supports-color@0.2.0
    ├── has-ansi@0.1.0 (ansi-regex@0.2.1)
    └── strip-ansi@0.3.0 (ansi-regex@0.2.1)

    source-map-support@0.2.8 node_modules/source-map-support
    └── source-map@0.1.32 (amdefine@0.1.0)

    fibers@1.0.5 node_modules/fibers
    => Starting meteor app on port:80

    => Redeploying previous version of the app

    ------------------------------STDOUT-----------------------------

    To see more logs type 'mup logs --tail=50'

    -----------------------------------------------------------------
如果我检查服务器上的日志(使用
mupx logs-f
),我会看到以下内容:

[48.59.198.247] /opt/meteord/run_app.sh: line 36:    16 Killed                  node main.js
[48.59.198.247] npm WARN package.json meteor-dev-bundle@0.0.0 No description
[48.59.198.247] npm WARN package.json meteor-dev-bundle@0.0.0 No repository     field.
[48.59.198.247] npm WARN package.json meteor-dev-bundle@0.0.0 No README data
[48.59.198.247] /opt/meteord/run_app.sh: line 36:    16 Killed                  node main.js
[48.59.198.247] npm WARN package.json meteor-dev-bundle@0.0.0 No description
[48.59.198.247] npm WARN package.json meteor-dev-bundle@0.0.0 No repository field.
[48.59.198.247] npm WARN package.json meteor-dev-bundle@0.0.0 No README data
[48.59.198.247] /opt/meteord/run_app.sh: line 36:    16 Killed                  node main.js
[48.59.198.247] npm WARN package.json meteor-dev-bundle@0.0.0 No description
[48.59.198.247] npm WARN package.json meteor-dev-bundle@0.0.0 No repository field.
[48.59.198.247] npm WARN package.json meteor-dev-bundle@0.0.0 No README data
[48.59.198.247] /opt/meteord/run_app.sh: line 36:    16 Killed                  node main.js

我看到其他人通过使用具有更多RAM的实例来解决此问题。

我看到其他人通过使用具有更多RAM的实例来解决此问题。

我的应用程序非常简单,但显然不是轻量级的。我的
server/main.js
如下所示:

Meteor.startup(function () {
    My_LineItems.find({}, {fields: {targeting: 1, id: 1}}).observeChanges({
        changed: function(_id, fields) {
            update_targeting(fields.id, fields.targeting);
        }
    });
    My_LineItems.find({}).observeChanges({
        added: function(_id, fields) {
            update_targeting(fields.id, fields.targeting);
        }
    });
    console.log('The app should be started now...');
});
Meteor.startup(function () {
    Meteor.setTimeout(function() {
        My_LineItems.find({}, {fields: {targeting: 1, id: 1}}).observeChanges({
            changed: function(_id, fields) {
                update_targeting(fields.id, fields.targeting);
            }
        });
        My_LineItems.find({}).observeChanges({
            added: function(_id, fields) {
                update_targeting(fields.id, fields.targeting);
            }
        });
    }, 30);
    console.log('The app should be started now...');
});
显然,那些观察这些查询的请求太慢了,以至于它们不允许应用程序启动,并且在15秒或120秒后,应用程序仍然没有正确启动

我通过更改上面的代码解决了这个问题,如下所示:

Meteor.startup(function () {
    My_LineItems.find({}, {fields: {targeting: 1, id: 1}}).observeChanges({
        changed: function(_id, fields) {
            update_targeting(fields.id, fields.targeting);
        }
    });
    My_LineItems.find({}).observeChanges({
        added: function(_id, fields) {
            update_targeting(fields.id, fields.targeting);
        }
    });
    console.log('The app should be started now...');
});
Meteor.startup(function () {
    Meteor.setTimeout(function() {
        My_LineItems.find({}, {fields: {targeting: 1, id: 1}}).observeChanges({
            changed: function(_id, fields) {
                update_targeting(fields.id, fields.targeting);
            }
        });
        My_LineItems.find({}).observeChanges({
            added: function(_id, fields) {
                update_targeting(fields.id, fields.targeting);
            }
        });
    }, 30);
    console.log('The app should be started now...');
});
通过这次调整,我的应用程序能够顺利部署


基本上,每次我部署应用程序时,它都必须为集合中的每个项目运行
added
方法,其中有很多项。我将其放入Meteor.setTimeout()中,我可以让
mupx
注册该应用程序已正确启动,然后可以说,繁重的过程将在后台运行。

我的应用程序非常简单,但显然不是轻量级的。我的
server/main.js
如下所示:

Meteor.startup(function () {
    My_LineItems.find({}, {fields: {targeting: 1, id: 1}}).observeChanges({
        changed: function(_id, fields) {
            update_targeting(fields.id, fields.targeting);
        }
    });
    My_LineItems.find({}).observeChanges({
        added: function(_id, fields) {
            update_targeting(fields.id, fields.targeting);
        }
    });
    console.log('The app should be started now...');
});
Meteor.startup(function () {
    Meteor.setTimeout(function() {
        My_LineItems.find({}, {fields: {targeting: 1, id: 1}}).observeChanges({
            changed: function(_id, fields) {
                update_targeting(fields.id, fields.targeting);
            }
        });
        My_LineItems.find({}).observeChanges({
            added: function(_id, fields) {
                update_targeting(fields.id, fields.targeting);
            }
        });
    }, 30);
    console.log('The app should be started now...');
});
显然,那些观察这些查询的请求太慢了,以至于它们不允许应用程序启动,并且在15秒或120秒后,应用程序仍然没有正确启动

我通过更改上面的代码解决了这个问题,如下所示:

Meteor.startup(function () {
    My_LineItems.find({}, {fields: {targeting: 1, id: 1}}).observeChanges({
        changed: function(_id, fields) {
            update_targeting(fields.id, fields.targeting);
        }
    });
    My_LineItems.find({}).observeChanges({
        added: function(_id, fields) {
            update_targeting(fields.id, fields.targeting);
        }
    });
    console.log('The app should be started now...');
});
Meteor.startup(function () {
    Meteor.setTimeout(function() {
        My_LineItems.find({}, {fields: {targeting: 1, id: 1}}).observeChanges({
            changed: function(_id, fields) {
                update_targeting(fields.id, fields.targeting);
            }
        });
        My_LineItems.find({}).observeChanges({
            added: function(_id, fields) {
                update_targeting(fields.id, fields.targeting);
            }
        });
    }, 30);
    console.log('The app should be started now...');
});
通过这次调整,我的应用程序能够顺利部署


基本上,每次我部署应用程序时,它都必须为集合中的每个项目运行
added
方法,其中有很多项。我将其放入Meteor.setTimeout()中,我可以让
mupx
注册应用程序已正确启动,然后可以说繁重的进程将在后台运行。

我只需将mup.json中的“deployCheckWaitTime”增加到120,就可以解决这个问题(我假设任何高于默认值20的值都可以正常工作)。我猜这只需要更多的时间来处理。

这对我来说是通过简单地将mup.json中的“deployCheckWaitTime”增加到120来解决的(我假设任何高于默认值20的值都可以正常工作)。我想这只是需要更多的时间来处理。

我用1 GB的RAM碰到了一个小插口,出现了相同的问题,所以我尝试了2 GB的RAM,但仍然出现了相同的问题…如何将deployCheckWaitTime延长到120左右?我用1 GB的RAM碰到了一个小插口,并且出现了相同的问题,所以我尝试了2 GB的RAM,但仍然出现了相同的问题…怎么样ut是否将部署检查等待时间延长到120左右?