最近做的一个项目中,有一个计算模块非常的消耗cpu资源,所以就从开始就规划成了一个并发的模块。并发就难免要处理任务的分配,在这个项目中使用了一个非常简单的方式做了这个任务分配,后来在stack overflow上也看见这个方法。感觉还有意思的。
具体的做法就是先将任务持久化到数据库中,table的名字是xx_task结构可以是:
然后每个计算实例主动来这个表中领取任务,为了避免两个计算实例领取到相同的任务可以按照任务的id对任务集合做一个hash。然后每个计算实例去自己的任务子集中拿属于自己的任务。比如,部署了7个计算实例,那么编号为1的计算实例领取任务的sql可以这样写:
select * from xx_task where id mod 7 = 0
只要任务的id是连续的,那么就可以保证均匀的分配任务了。当然,这个方法有个弊端,就是没有master,如果一个计算实例crash了,那么它的任务就没人做了。所以对于那种高可用要求的场景可能就不太合适了。
分享到:
相关推荐
Springboot中使用数据库配置定时任务,并在Job中自动装配Spring容器Bean。
数据库运维形考任务2 数据库运维.docx
它的主要任务是研究如何存储、使用和管理数据。目的是使学生掌握数据库 的基本原理、方法和应用技术,使用数据库设计的原则,面对现实问题设计E-R 模型和关系数据库结构。设计环节能有效使用数据库技术解决数据处理...
河南理工大学数据库系统原理课程设计任务书.docx河南理工大学数据库系统原理课程设计任务书.docx河南理工大学数据库系统原理课程设计任务书.docx河南理工大学数据库系统原理课程设计任务书.docx河南理工大学数据库...
国开MySQL数据库应用形考任务1~4.doc
《数据库课程设计》实验任务书-16学时.docx《数据库课程设计》实验任务书-16学时.docx《数据库课程设计》实验任务书-16学时.docx《数据库课程设计》实验任务书-16学时.docx《数据库课程设计》实验任务书-16学时.docx...
《数据库课程设计》实验任务书-16学时.pdf《数据库课程设计》实验任务书-16学时.pdf《数据库课程设计》实验任务书-16学时.pdf《数据库课程设计》实验任务书-16学时.pdf《数据库课程设计》实验任务书-16学时.pdf...
数据库管理系统课程设计任务书及报告书样本.docx数据库管理系统课程设计任务书及报告书样本.docx数据库管理系统课程设计任务书及报告书样本.docx数据库管理系统课程设计任务书及报告书样本.docx数据库管理系统课程...
华东交大的数据库任务书11、要求学生熟练掌握和使用SQL、SQL Server企业管理器创建数据库、表索引和修改表结构,并学会使用SQL Server 查询分析器接收Transact-SQL语句和进行结果分析。 2、掌握查看、修改数据库和表...
数据库应用技术课程设计任务书
《大型数据库系统课程设计》任务书
windows环境数据库备份任务脚本文件,可以用来添加定时任务执行数据库备份。由于下载次数导致下载所需积分过多。重新提交
14-数据库课程设计任务书-某客运公司运输管理系统数据库设计.docx14-数据库课程设计任务书-某客运公司运输管理系统数据库设计.docx14-数据库课程设计任务书-某客运公司运输管理系统数据库设计.docx14-数据库课程设计...
MySQL数据库应用、设计与管理任务驱动教程(微课版)-课后练习参考答案.pdf
Spring+Quartz 从数据库中获取定时任务和定时时间,动态实现对定时任务的增删改查,部署到tomcat即可看到定时任务执行效果。本人亲测,可用!
国开计算机专科《mySQL数据库应用》网核形考任务实验训练一.pdf
数据库的操作与连接 数据库的操作与连接 数据库的操作与连接 数据库的操作与连接
《 MySQL数据库任务驱动式教程》教学课件—01认识数据库.pdf《 MySQL数据库任务驱动式教程》教学课件—01认识数据库.pdf《 MySQL数据库任务驱动式教程》教学课件—01认识数据库.pdf《 MySQL数据库任务驱动式教程》...
任务数据库模板帮助你快速建立数据库。
Springboot整合Quartz实现定时任务数据库动态配置,新增任务、修改cron表达式、暂停任务、恢复任务、删除任务等操作