10

有没有帮助实现本地顺序执行任务的 queue?

 3 years ago
source link: https://www.v2ex.com/t/810839
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

V2EX  ›  JavaScript

有没有帮助实现本地顺序执行任务的 queue?

  yazoox · 20 小时 20 分钟前 · 642 次点击

需求大概是这样滴

有一个界面,有一颗树,显示各种节点。用户可以点击 /右键任意一个节点,添加 /删除或者重命名,或者选择某节点后,显示一个面板,然后修改属性,等等。
但是,任意操作后,需要对应修改同一个文件,然后该文件会上传到服务器上(这个操作需要 3~5 秒,比较费时)

但是,“被要求”,每次修改后,立即执行文件保存并上传的操作(添加一个“保存”按钮,等都修改完成后,再保存提交它不香么?)。这样的话,用户每次操作,都要等待 5 秒,才能执行下一步操作。还不让我们把界面上的菜单灰掉(本来想操作没有执行完,菜单就灰掉,暗示 /强制 用户,现在不能操作)

所以,问题来了。现在我想使用一个 queue ,有点类似 message queue ,只是这个是本地的(有点像生产 /消费模型)。用户只管在界面上操作,每次动作类型和修改的数据,都添加到这个 queue 里面去。然后,monitor 这个 queue ,有内容了,就取一条,执行操作,保存,上传。然后再去 queue 里面取一条,blabla...

不知道有没有成熟的 npm package 做这个?还是说,只能再造一个轮子?或者,大家有什么想法?

p.s.1
好像 saga 里面有个 event channel ,是类似这样的。我们的环境里面本来就使用了 redux/redux-saga

可以试试每次用户的操作,emmit 一个消息到这个 channel ,然后这个 channel 里面,循环监听,处理消息,上传文件。

p.s.2
react + typescript + redux + redux-saga


Recommend

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK