1 Star 0 Fork 1

minisuperman / javamq

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
WTFPL

赛题介绍

题目: <实现进程内消息队列>
开发语言:JAVA
相关知识点: JAVA编程, 多线程, IO
测评环境:
4核机器 4G内存
JVM内存2.6G -Xms2560M -Xmx2560M
磁盘速度:40MB/s
以正确性, 运行效率为排名标准

评测网站:

网址 http://115.29.111.99:9000/
组名要求: xxx(n)
n表示你是第几组

代码提交方式

通过git提交, 我们在https://gitee.com/托管代码
代码框架:https://gitee.com/mocyx/javamq
你需要:
1 注册一个账号, fork这个项目, 作为你的git地址
2 在管理界面-项目成员管理-添加项目成员, 添加一个开发者:mocyx
3 在管理界面, 将项目设置为非公开的
然后在评测网站上设置git地址
然后点"提交评测"来提交

时间表

11.16-12.1 准备阶段,开放评测网站,提供单核机器评测, 主要给大家熟悉环境
12.1-12.15 预热阶段,在4核机器上评测,成绩不会作为最终成绩
12.15-12.30 正式比赛,产生最后的排名

赛题背景

见ppt

编程目标

你的coding目标是实现以下接口: Producer的createBytesMessageToTopic(topic, body) 创建一个消息, 指定Topic
Producer的send(message) 发送消息
Producer的flush(), 发送结束时会调用一次
Consumer的attachQueue(queue, topics) 为Queue绑定Topics
Consumer的poll() 拉消息

评测逻辑:

1 git clone下载代码 2 push阶段: 四个线程同时push消息 3 kill程序,清理页面缓存 4 pull阶段: 四个线程同时pull消息 5 以push和pull的总时间作为排名依据

push和pull都有时间限制

代码结构

pku包下面是你要用到的的类:

核心包括: Producer Consume KeyValue ByteMessage MessageHeader
我们的评测程序只需要这5个类就能工作
DefaultKeyValue和DefaultMessage是默认的key-value和message实现, 你完全可以自己自己的版本

pku.demo下面是一个内存实现的消息队列

为了方便大家理解题目, 为大家实现了一个内存存储的消息队列
DemoConsumer: 继承Consumer
DemoProducer: 继承Producer
DemoMessageStore: 消息队列的内存存储实现
DemoTester: 一个测评程序, 里面会开启多个线程进行push与pull, 通过这个类你可以了解到测评程序的运行逻辑

其他

如果有其他问题, 或者找到了评测程序的bug, 请直接联系我
如果不确定某些hack可不可以做, 可以直接问我

DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE Version 2, December 2004 Copyright (C) 2017 mocyx Everyone is permitted to copy and distribute verbatim or modified copies of this license document, and changing it is allowed as long as the name is changed. DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. You just DO WHAT THE FUCK YOU WANT TO.

简介

暂无描述 展开 收起
Java
WTFPL
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
Java
1
https://gitee.com/minisuperman/javamq.git
git@gitee.com:minisuperman/javamq.git
minisuperman
javamq
javamq
master

搜索帮助