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

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

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