首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >线程:分工

线程:分工
EN

Stack Overflow用户
提问于 2014-08-13 15:11:13
回答 1查看 68关注 0票数 0

为了理解节点工人,我寻求一个正确的方向。我目前有Node代码,它从文件中读取数据,并对网络请求执行一系列后续操作。我对数据所做的所有操作目前都发生在read函数的回调中。

我绞尽脑汁的是如何最好地接受这个单一的读取函数(这几乎肯定不会减慢我的应用程序的速度--我很确定这是我想要分支的后面的请求),并将操作划分为多个子进程。当然,我不想在同一行数据上多次执行我的操作,而是希望给每个工作人员一个饼块。我最好的选择是,在read-回调中,用部分数据创建几个数组,然后在回调之外,将一个数组提供给每个工作人员吗?还有其他选择吗?我的最终目标是减少脚本运行x数据量所需的时间。

代码语言:javascript
复制
var request = require('request');
var request = request.defaults({
    jar: true
})
var yacsv = require('ya-csv');
//  Post Log-In Form Information to Appropriate URL -- Occurs only once per script-run -- Log in cookies saved for subsequent requests
request.post({
    url: 'xxxxx.com',
    body: "login_info",
    //  On Reponse...
}, function(error, res, body) {
    //  Instantiate CSV Reader
    var reader = yacsv.createCsvFileReader("somefile.csv");
    //  Read Data from CSV, Row by Row -- Function happens once per CSV-row
    // THIS IS WHAT I -THINK- I CAN SPLIT AMONG MULTIPLE WORKERS
    var readData = reader.addListener('data', function(data) {
            // Bind each field from a CSV row to a corresponding variable for ease of use
            //[Variables here]
            //  Second Request for Search Form -- Uses information from a single row to query more information from a database
            request.post({
                    url: 'xxxxx.com/form',
                    body: variable_with_csv_data,
                }, function(error, res, body) {
                    //  Parse the resulting page, then page elements to variables for ease of output
                }
            });
    });
});
EN

回答 1

Stack Overflow用户

发布于 2014-08-13 15:53:46

集群模块不是线程的扩展器。集群模块允许您通过多个 http请求平衡到相同的应用程序逻辑,而无需指定责任。

你到底想要优化什么?

整个过程需要很长时间吗?

数据事件的单独处理会减慢吗?

你的数据库调用慢了吗?

http请求慢了吗?

此外,我还会取消ya-csv模块--在我看来,它似乎有点过时了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25289842

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档