• 请不要在回答技术问题时复制粘贴 AI 生成的内容
TomeWong
V2EX  ›  程序员

Electron 创建子进程处理 上传文件的 MD5 计算和上传逻辑

  •  
  •   TomeWong · Apr 9, 2020 · 3167 views
    This topic created in 2247 days ago, the information mentioned may be changed or developed.

    创建子进程处理计算和读文件流,以及上传的逻辑,而不是放在渲染进程中。

    创建子进程,子进程的程序怎么执行,放在什么位置,放在主进程中?

    如果放在主进程中,渲染进程的数据如何传递到子进程,而且上传的逻辑是实时处理,这部分数据如何进行同步和更新

    有一部分数据是放在 vuex 中,计算 MD5 值需要从 vuex 获取数据,子进程可以获取 vuex 中的数据么?

    12 replies    2020-04-10 12:03:28 +08:00
    TomeWong
        1
    TomeWong  
    OP
       Apr 9, 2020
    尝试了 node 的 child_process,放在了渲染进程,代码没有执行,但放在主进程数据如何同步和更新
    tojonozomi
        2
    tojonozomi  
       Apr 9, 2020
    或者用 service worker ?反正数据拿到 worker 要走消息,拿到 child_process 的话要走 ipc
    TomeWong
        3
    TomeWong  
    OP
       Apr 9, 2020
    @tojonozomi ipcRender 可以实时更新和同步数据么?
    rabbbit
        4
    rabbbit  
       Apr 9, 2020
    可以用 child_process.fork 配合 send 和 on("message")
    TomeWong
        5
    TomeWong  
    OP
       Apr 9, 2020
    @rabbbit 我试了,放在 render 进程没有执行,这部分是不是要放在 main 进程中
    vagary
        6
    vagary  
       Apr 9, 2020
    印象里面,render 和 main 通信有 api 。先扔给 main,有需要的话,mian 和 child 继续通信。
    是我的话,vuex 中没必要处理了,render 在得到相关的全部数据之后,一次扔给 main 算了。减轻管理 render 和 main 通信复杂度,同时还要兼顾 render 自己的逻辑。最多加个 vuex 里加个状态等着 main 是否处理完。
    ArrayBuffer
        7
    ArrayBuffer  
       Apr 9, 2020
    感觉没必要创建子进程,在主进程处理就好了, 或者直接放到渲染进程 ...
    TomeWong
        8
    TomeWong  
    OP
       Apr 9, 2020
    @ArrayBuffer 现在的处理是放在渲染进程中,但上传的的文件过多时,页面会出现卡顿,不响应,这个过程需要计算文件的 MD5 值,读文件流和上传
    jason94
        9
    jason94  
       Apr 9, 2020
    开个隐藏的 renderer 进程去做处理,vuex 中的数据走 ipc 或者 localStorage 都可以
    duan602728596
        10
    duan602728596  
       Apr 9, 2020 via iPhone
    上传文件,一定要用 fs 吗?如果用 File 对象上传的话,其实计算什么的反而可以放到 WebWorker 里来处理
    vampuke
        11
    vampuke  
       Apr 10, 2020
    主进程用 mainWindow.webContents.send()发送给子进程
    TomeWong
        12
    TomeWong  
    OP
       Apr 10, 2020
    @duan602728596 在 webworker 里不能使用 require
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3159 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 42ms · UTC 12:48 · PVG 20:48 · LAX 05:48 · JFK 08:48
    ♥ Do have faith in what you're doing.