本发明涉及计算机任务管理,尤其涉及一种基于indexeddb存储的electron桌面应用任务管理方法。
背景技术:
1、electron是一个用html,css和javascript来构建的跨平台桌面应用程序,原理为electron通过将chromium和node.js合并到同一个运行时环境中,并将其打包为mac,windows和linux系统下的应用来实现这一目的。electron于2013年作为构建atom的框架而被开发出来。这两个项目在2014春季开源。electron的核心理念是:保持electron的体积小和可持续性开发。比如electron只用了chromium的渲染库而不是其全部组件。这使得升级chromium更加容易,但也意味着electron缺少了google chrome里的一些浏览器相关的特性。添加到electron的新功能应该主要是原生api。如果可以的话,一个功能应该尽可能的成为一个node.js模块。
2、electron和nw.js都可以用前端的知识来开发桌面应用,nw.js和electron起初是同一个作者开发。后来种种原因分为两个产品。一个命名为nw.js(英特尔公司提供技术支持)、另一命名为electron(github公司提供技术支持)。nw.js和electron可以用nodejs中几乎所有的模块。nw.js和electron不仅可以把html写的web页面打包成跨平台可以安装到电脑上面的软件,也可以通过javascript访问操作系统原生的ui和api(控制窗口、添加菜单项目、托盘应用菜单、读写文件、访问剪贴板)。
3、目前electron的应用很广泛,github的atom编辑器、微软的vscode编辑器,包括阿里内部的一些软件也是用electron开发的。
4、现有技术中在使用electron制作桌面应用时,electron没有一个合适的任务管理功能模块。并且electron提供的electron-store存储组件,因为是通过nodejs的fs模块把数据存储在本地硬盘文件上,并且进行读取操作,存在并发任务并不友好、数据存储量少、数据量大查询慢、api不丰富等问题。
技术实现思路
1、有鉴于现有技术的上述缺陷,本发明提出一种基于indexeddb存储的electron桌面应用任务管理方法,用于查看、管理桌面应用任务,解决electron不具备任务管理的问题,同时可存储万条以上的任务。使用indexeddb存储,任务的增删改查的更加方便、快捷。提供一套完整的electron桌面应用中任务管理解决方案。
2、本发明提供的一种基于indexeddb存储的electron桌面应用任务管理方法,包括:
3、任务管理模块监听用户下发任务,将任务信息中队列类型为待定队列的任务存入indexeddb;
4、任务管理触发判断方法,所述判断方法为如果indexeddb中队列类型为运行队列的任务数小于预定数值时,将indexeddb中队列类型为待定队列的任务,根据任务改变时间排序,取前预设数量的数据,将所述预设数量的任务的队列类型修改为运行队列,进入运行队列的等待任务队列中;
5、所述等待任务队列发生变化时触发方法,先判断并行任务数,如果并行数大于当前运行任务队列数,所述等待任务队列会先入先出的方式进入所述运行任务队列,直到相等;
6、所述运行任务队列发生变化时触发方法,判断所述运行任务队列中任务运行状态为未执行任务或暂停任务的,执行所述未执行任务或暂停任务的任务类型所对应的后台接口或electron的nodejs服务;
7、所述运行任务队列中的任务失败后,该任务队伍类型变为失败队列;将失败队列中的任务的队列类型变为待定队列,进行重试;
8、所述运行任务队列中的任务完成后,该任务队列类型变为完成队列。
9、优选地,在待定队列或者运行队列通过将队列类型修改为暂停队列,将任务暂停。
10、优选地,所述任务信息包括任务名称、队列类型、任务类型、任务重试次数、任务最新改变时间、任务开始时间、任务序列号、任务运行状态。
11、优选地,所述任务类型包括:上传、下载、删除、复制。
12、优选地,所述队列类型包括待定队列、运行队列、暂停队列、失败队列、完成队列。
13、优选地,所述待定队列、所述运行队列的任务包括单选、多选、删除、暂停功能。
14、优选地,所述任务运行状态包括未执行任务、正在执行任务和暂停任务。
15、优选地,所述运行队列包括等待任务队列和运行任务队列。
16、本发明还提供了一种电子设备,所述电子设备包括:
17、至少一个处理器;以及,
18、与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述方法。
19、本发明还提供了一种非暂态计算机可读存储介质,该非暂态计算机可读存储介质存储计算机指令,该计算机指令用于使该计算机执行上述方法。
20、本发明的有益效果是:
21、提供了一种桌面应用任务管理完整的解决方案,相比于其他存储,大数据量任务处理游刃有余;
22、indexeddb是其同源策略,每个源都会关联到不同的数据库集合,不同源是不允许访问其他源的数据库,从而保证了数据的安全性。
1.一种基于indexeddb存储的electron桌面应用任务管理方法,其特征在于,包括:
2.如权利要求1所述的桌面应用任务管理方法,其特征在于,在待定队列或者运行队列通过将队列类型修改为暂停队列,将任务暂停。
3.如权利要求1所述的桌面应用任务管理方法,其特征在于,所述任务信息包括任务名称、队列类型、任务类型、任务重试次数、任务最新改变时间、任务开始时间、任务序列号、任务运行状态。
4.如权利要求3所述的桌面应用任务管理方法,其特征在于,所述任务类型包括:上传、下载、删除、复制。
5.如权利要求1所述的桌面应用任务管理方法,其特征在于,所述队列类型包括待定队列、运行队列、暂停队列、失败队列、完成队列。
6.如权利要求1所述的桌面应用任务管理方法,其特征在于,所述待定队列、所述运行队列的任务包括单选、多选、删除、暂停功能。
7.如权利要求1所述的桌面应用任务管理方法,其特征在于,所述任务运行状态包括未执行任务、正在执行任务和暂停任务。
8.如权利要求1所述的桌面应用任务管理方法,其特征在于,所述运行队列包括等待任务队列和运行任务队列。
9.一种电子设备,其特征在于,所述电子设备包括:
10.一种非暂态计算机可读存储介质,其特征在于,该非暂态计算机可读存储介质存储计算机指令,该计算机指令用于使该计算机执行前述权利要求1-8任一项所述的方法。