微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Fork 子进程卡在脚本执行之间

如何解决Fork 子进程卡在脚本执行之间

我有一个带 fork 的脚本来创建子进程。

在执行脚本时,有时它甚至没有创建子进程并卡在那里。 这是主文件

const forkProcess = (shop) => {
    const program = './fetchSS.js';
    const parameters = [];
    const options = {
        stdio: ['pipe','pipe','ipc']
    };

    let child = fork(program,parameters,options);
    child.shop_id = shop.id;

    child.stdout.on('data',(data) => {
        console.log('Child data:');
        console.log(data.toString());
    });

    child.stderr.on('data',(data) => {
        console.log('Error on child',data);
        clearMemory(child.shop_id);
        child.kill();
    });

    child.on('exit',(code) => {
        if (code > 0) {
            console.log('Error in child',code);
            clearMemory(child.shop_id);
        }
        child.kill();
    });

    child.on('message',data => {
        if (data.isCompleted) {
            clearMemory(data.shopId);
        }
        if (data.isFailed) {
            clearMemory(data.shopId);
        }
        fetch();
        child.kill();
    });

    child.send({...shop,go: true});

    return child;
};

when script is getting stop (screenshot)

附言所有数据都是准确的,如果我尝试重新运行脚本,则不会出现错误,有时它也会执行而不会卡住。

提前致谢。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。