之前我做一个任务队列的功能,大体就是先选择一些数据,生成一个任务对这些数据逐条进行处理。然后有一个列表存储这些任务,还要支持暂停继续还有进度条。我实现得很艰难,因为我觉得取到的数据都要放到内存里,然后搞一个线程池不停的取数,再搞一个管道,每完成一个任务就给一个数据+1,然后再搞一个进度条线程读这个值,来判断进度条的状态,暂停和回复要进行序列化/反序列化。。。就像是炒菜,但是举着锅,举着火,举着碗,举着菜板切菜。
其实完全没必要什么都放在内存里,我的需求没有那么强的实时性要求,我可以把要处理的数据存到一个文件或者sqlite里,每次只把当前要处理的数据取到内存里,处理完再更新库,然后进度条的线程隔一段时间再读一下库的数据就好了,暂停之后也能很容易的读库来了解之前的进度,只要把锁写好就行了。
我之前一切都在内存里的操作可能是因为我看的教程就是在内存里操作的数据,但是没有考虑他的场景是不是适合我
虽然不太懂,但前端处理一些数据的时候,用各种数据模型搞可能很复杂,而直接用页面元素作缓存参与进来流程会很简单的,简单到我喜欢教新手这么玩,好理解,有效果,至于性能什么的……小任务谁在乎性能啊。
放内存里还是放数据库里会对你写主要的处理逻辑有很大影响吗?
建文件还不如在内存里建个sqlite数据库…
说到头你这就是手搓了个简易任务队列,嫌麻烦就找个任务队列的库来用算了