后台自动任务设计和编码总结
来源:互联网 发布:dnf数据芯片刷哪里好 编辑:程序博客网 时间:2024/06/06 09:41
资源预估
- 预估数据量、算法的时间、空间复杂度
- 依据预估的结果分配合理的资源(内存,CPU),避免资源不够用。
避免数据脏读
自动脚本处理大量数据速度快,尤其有写操作的任务,数据一致性在分布式环境下往往难以保证。这种情况下应该避免数据脏读,比如数据库会有主从复制同步延迟的现象,这时应该强制连接数据库主库。
幂等性
有写操作的脚本,需要考虑脚本执行的幂等性,即在参入相同参数多次运行与运行一次的结果相同。 保证幂等性具体应该考虑一下几点:
- 逻辑上,检查待处理数据的状态,已经处理过的数据不再处理。
- 禁止并发运行,不允许运行多个进程同步运行同一任务。如何保证?信号量、Memcache加锁。
参数控制
- 在设计阶段,应该通过参数控制,限制脚本的操作范围。参数可以是时间,自动脚本周期运行,每次运行,只处理相应周期范围内的数据。
- 注意默认参数的参数值。
读并发
自动脚本处理速度快,在和其他系统进行交互时,会对其他系统产生大量而密集的请求。
- 要考虑其他系统的抗并发能力
- 合理限制单位时间对其他系统的访问次数
- 尽量将数据集中做批量请求,减少请求次数
- 在本地做缓存,消除重复的请求。
容错 和 错误处理
- 容错 自动脚本往往批量处理大量数据,循环处理每条数据。在单次循环中的错误或异常,应该全部捕获,并记下日志,让脚本继续运行。
- 日志 记录重要操作,包括info、warning、error等级所有日志,形式可以是文本记录或数据库,便于追查和报警。
备灾和数据修复
- 在不可抗拒因素(断电,其他原因宕机)等引起任务中途突然停止,应该依据日志定位、和追查处理到哪一阶段。修复错误数据。
- 在保证脚本幂等性的前提下,重复执行脚本可自动处理未完成的工作。
优化
随着业务增长,任务处理数据量越来越大,可能会出现,任务超时,内存不够用的情况,应该及时对自动任务进行优化,优化的方案可以从算法、业务架构上考虑。
原地址: http://www.zuocheng.net/it/?p=218作程的技术博客
0 0
- 后台自动任务设计和编码总结
- Tomcat自动启动后台任务
- .net后台自动执行任务
- [MSSQL]自动编码设计
- app后台设计总结
- php定时自动执行任务(后台执行)
- 任务系统设计总结
- 后台服务器设计模型总结
- 后台服务器设计模型总结
- IOS中的本地通知和后台任务
- IOS中的本地通知和后台任务
- Linux的后台任务和进程查看
- 优化 Android 线程和后台任务开发
- 优化 Android 线程和后台任务开发
- 优化 Android 线程和后台任务开发
- 后台任务和PHP-Resque的使用
- linux 任务后台bg和fg命令
- Linux前台和后台任务的切换
- JAVASE_Java新特性下
- 6.时光机穿梭
- .NET反射详解
- jmeter 线程 上的参数解释理解的误区~
- 7.版本回退
- 后台自动任务设计和编码总结
- IO 读写操作
- 8.工作区和暂存区
- 安卓(android) github上那些精彩的 开源项目
- 杭电1020 Encoding
- PostgreSQL 9.4文档 第6章 数据操作
- 工作记录
- 9.管理修改
- JavaScript图片无缝轮播代码