2

フロー制御にはマングースとキューを使用しています。データベースから取得したオブジェクトを Kue に渡します。ジョブが処理されると、オブジェクトには .save() などの関数がなくなります。

  jobs.process('process', 5, function(job, done) {
        var url = job.data.url;
        var objo = job.data.comp;

        request({uri:url, json:true}, function(err, res, body) {
            objo.meta = body;

            // Here it throw an error that save is note defined
            // TypeError: Object #<Object> has no method 'save'
            objo.save(function(err) {
                if (err)
                    throw err;
                console.log('Saved data for ' + objo.title);
                done();
            });
        });
    });


    var q = db.Entity.find({}).sort('_id', 1).limit(10);

    q.execFind(function(err, docs) {
        docs.forEach(function(objo) {

            jobs.create('process', {
                comp : objo,
                url : 'http://example.com/' + encodeURIComponent(objo.permalink) + '.js'
            }).save();
        })
    });

前もって感謝します

4

1 に答える 1

2

これは、Kue がオブジェクトを完全に保存するのではなく、呼び出しの値を保存するだけだJSON.stringify()からです。オブジェクトの ID を渡し、ワーカーのデータベースからマングース表現を取得する必要があります。

于 2012-08-22T01:48:01.313 に答える