批量任务后台执行功能实现细节。

该博客详细阐述了批量任务后台执行的实现细节,包括后台错误修复、客户端操作限制、进度显示以及自定义账户功能。针对线程运行过程中的问题,提出了优化方案,如使用内存存储进度信息,避免频繁写入数据库。此外,还介绍了需求二的自动修复线程,需求三的提前操作客户端机制,以及需求四的进度管理和自定义账户展示策略。
摘要由CSDN通过智能技术生成

将客户端开启、关闭、修改认证功能后台执行。

一、后台执行过程中出现错误或者遇到系统重启时自动修复。

二、自动修复未启动前,提供提前修复按钮。

三、每个客户端在线程执行过程中提供提前操作处理。

四、前端展示进度。

五、自定义账户展示、恢复默认账户功能。

限制:

1、线程运行过程中或者出现运行错误时不能运行其他线程。(考虑优化为出现错误时,可以运行其他线程。)

2、线程运行过程中不能删除客户端。

3、线程运行过程中还没处理的客户端不能单独操作认证。

 

实现:

需求一实现方案:

原定方案:

线程开启、关闭、修改时,在mon db中写入任务执行状态(operation_type: 0-开启,1-关闭, 2-修改, status: running-运行中, end:执行遇到错误或者系统重启。 end-running-后台修复线程执行中)、认证信息以及所有的客户端信息、进度信息,每处理一个客户端则删除一个客户端,并更新进度。

问题:

每次处理一个客户将端的操作在客户端少的时候不会对性能有影响,但是当客户端达到1000左右时,写入mon db的操作将是一个比较耗时的操作。

优化方案:

1、线程开始后客户端信息、进度信息不存入mon db,针对执行过程中客户端是否已经被开启和关闭是可以通过客户端当前认证状态获取的,针对修改的情况,每次线程处理或者提前处理以后,将已经处理的客户端存储到内存中来达到判断客户端是否已经被修改。

2、进度信息存储在内存中,如果后台任务运行过程中遇到错误或者重启,修复线程运行时进度重新计算,注意,修复线程运行时的进度为总客户端数减去之前已经被提前处理的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值