免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3122 | 回复: 7
打印 上一主题 下一主题

多进程的主进程任务分配怎么做到合理 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-06-02 11:57 |只看该作者 |倒序浏览
一张数据库表,不停的进来数据,一个多进程对此表进行业务操作
要求主进程来分配任务,就是将表中的字段A置为子进程id(未分配时字段A为空),子进程取自己的任务,处理完成后移走表中对应数据。
要求分配要比较均匀合理。怎么实现这个分配?

论坛徽章:
2
技术图书徽章
日期:2013-09-04 15:21:51酉鸡
日期:2013-11-01 21:20:20
2 [报告]
发表于 2010-06-02 12:48 |只看该作者
以数据库为连接点,比较累

论坛徽章:
0
3 [报告]
发表于 2010-06-02 13:07 |只看该作者
我这的情况暂时可以忽略这个,性能问题不很明显
分配通过数据库来体现,逻辑简单。
以数据库为连接点,比较累
mirnshi 发表于 2010-06-02 12:48

论坛徽章:
0
4 [报告]
发表于 2010-06-02 16:05 |只看该作者
最简单的就是轮转分配,开一个空闲子进程队列,一个工作子进程队列
任务来了,分配给第一个空闲子进程出空闲队,开始任务,入工作队列

再高级一点的你可以评估任务复杂度,这个要看具体业务。如果是电信系统啊金融系统啊,SQL的执行计划是很好的参考,这种系统主要耗时在库里。

PS:BS一下用数据库实现进程通讯,BS一切完全依赖数据库的程序行为

论坛徽章:
0
5 [报告]
发表于 2010-06-02 16:06 |只看该作者
设计不合理,推荐用共享内存区实现。

论坛徽章:
0
6 [报告]
发表于 2010-06-02 17:24 |只看该作者
是的,用数据库来实现,总是感觉很难控制得到位
但是目前暂时只能用数据库来实现
设计不合理,推荐用共享内存区实现。
没本 发表于 2010-06-02 16:06
最简单的就是轮转分配,开一个空闲子进程队列,一个工作子进程队列
任务来了,分配给第一个空闲子进程出空 ...
shmild 发表于 2010-06-02 16:05

论坛徽章:
0
7 [报告]
发表于 2010-06-02 18:12 |只看该作者
那么要用数据库就用彻底点,用触发器和存储过程来实现进程池的调度吧。

论坛徽章:
0
8 [报告]
发表于 2010-06-03 10:09 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP