恒美微站
首页
关于我们
建站服务
主题模板
案例展示
资讯中心
联系我们
campus-imaotai 实战教程:如何用 Docker 快速搭建 i茅台自动预约系统
首页
资讯中心
/
campus-imaotai 实战教程:如何用 Docker 快速搭建 i茅台自动预约系统
campus-imaotai 实战教程:如何用 Docker 快速搭建 i茅台自动预约系统
发布时间:2026/10/18 4:36:22
campus-imaotai 实战教程如何用 Docker 快速搭建 i茅台自动预约系统【免费下载链接】campus-imaotaii茅台app自动预约每日自动预约支持docker一键部署本项目不提供成品使用的是已淘汰的算法项目地址: https://gitcode.com/GitHub_Trending/ca/campus-imaotai早上 8 点 55 分服务器上的 i茅台自动预约工具 Campus-imaotai 已经刷新完当天的预约商品与门店数据9 点整它开始按每个账号设定的分钟批量发起预约请求当晚 18:05申购结果被自动查出并推送。这就是这套系统一天的完整工作节奏。作者本人在 README 里坦承本项目不提供成品使用的是已淘汰的算法这反而让它更适合作为一份能跑通、能读透的后台管理 定时任务 容器化部署工程范例比一个黑盒脚本更有参考价值。项目定位把每日茅台预约变成后台流程Campus-imaotai 是一个基于 Java Spring Boot 的 i茅台预约辅助系统面向想在服务器端托管多个 i茅台账号预约动作的个人用户。它拆成四个模块campus-common公共组件、campus-framework框架与安全、campus-admin管理后台接口、campus-modulari茅台业务逻辑前端是一套 Vue 管理界面整体用 Docker 一键拉起。日常麻烦手动操作的方式本项目给出的做法每天卡点操作定闹钟、守在 App 前SpringScheduled定时任务批量执行多账号重复登录逐个切换、逐个点击后台统一维护 token9 点分批预约不知选哪家门店凭感觉挑shop_type字段切换出货量最大 / 附近门店两种策略晚上等开奖手动刷新 App18:05 自动查询结果并通过 PushPlus 推送工作原理8:55 到 9 点之间发生了什么所有时间规则集中在 CampusIMTTask.java 这一个类里用 cron 表达式驱动共四个关键节点数据刷新7:10、7:55、8:10、8:55拉取最新版本号、预约商品i_item和门店列表i_shop。效果是 9 点预约时用的都是当天最新的商品编码与门店数据而不是缓存里的旧数据。随机分钟改写1:10批量重算每个用户的预约分钟。效果是各账号请求错开避免同一秒集中打向接口。批量预约9:00–9:59 每分钟一次按minute字段把账号分到对应分钟执行Async异步跑批。效果是一个小时内把当天所有账号的预约全部提交完毕。结果查询与推送18:05查询当天申购结果并写入 i_log、通过 PushPlus 发通知。效果是当天 18:05 之后就能确认中没中不用守着 App。管理侧的用户配置长这样左侧菜单还能看到预约项目、门店列表等入口部署上手Docker 一键启动命令部署前确认环境满足已安装 Docker 与 Docker Compose宿主机 3306MySQL、6379Redis、8160后台服务端口未被占用因为 compose 里所有服务都用了 host 网络模式宿主机时钟准确定时任务依赖系统时间能访问外网拉取镜像启动流程只有三步配置细节见 docker-compose.yml# 克隆项目代码 git clone https://gitcode.com/GitHub_Trending/ca/campus-imaotai cd campus-imaotai/doc/docker # 一键启动 MySQL 5.7、Redis 6.2、Nginx 1.23 与 campus-server 四个服务 docker-compose up -d# 导入初始化脚本创建 i_user、i_shop、i_item、i_log 等表 docker exec -i mysql mysql -uroot -p123456789 campus_imaotai ../sql/campus_imaotai-1.0.5.sql完成后在浏览器打开http://服务器IP:8160即可进入管理后台端口来自 compose 中的SERVER_PORT: 8160。关键配置预约分钟与门店策略参数账号级配置主要落在 i_user 表上字段含义可直接参考 campus_imaotai-1.0.5.sql 的注释配置项默认值推荐值适用场景minute预约分钟55–30 内按账号错开指定 9 点档内的具体分钟random_minute随机分钟0随机模式保持默认避免账号全挤在 9:00:00shop_type门店策略1本市出货量最大门店1不关心门店位置、只想要大概率有货的门店lat/lng经纬度空用策略 2 时必填想固定约离自己近的门店自提push_plus_token空申请后填入接收申购结果推送SERVER_PORT81608160管理后台访问端口两条场景化建议自提场景如果你固定去附近门店提货把shop_type改为 2 并填上经纬度系统才会走附近门店逻辑否则默认按出货量最大门店选择。多账号场景给每个账号设置不同的minute让 9 点档的请求在时间上散开减少同一时刻的并发压力。门店列表页可以按省份、城市、地区筛选确认你的目标门店是否已被刷新进来实战场景从添加账号到确认结果场景为两个不同城市的账号配置错峰预约背景你持有 A、B 两个 i茅台账号希望都参与当天预约但又不想两个账号在同一分钟发起请求。操作在用户管理点添加账号输入手机号后由系统发送验证码填回验证码并点登录后台即完成登录态token、cookie、设备 id的采集入库随后把 A 的minute设为 5、B 设为 25shop_type按各自城市情况选择。结果9 点档 A、B 分属不同分钟批次执行18:05 系统查询结果后操作日志页会出现i茅台预约 / 预约成功这类带状态标记的记录同时 PushPlus 把结果推到你的手机。避坑与常见问题排查命令清单现象后台页面打不开8160 端口无响应排查docker ps -a看 campus-imaotai 是否 runningdocker logs campus-imaotai查启动报错常见为端口冲突或/docker/server/conf下缺少 application-prod.yml解决释放宿主机 8160 端口按 compose 注释把生产配置文件放到挂载目录后重启容器现象9 点过后日志里没有预约动作或门店列表为空排查docker logs campus-imaotai | grep 刷新数据看 8:55 的刷新任务是否执行、是否报错解决刷新失败通常是网络或服务端接口变更所致先用浏览器确认 8:55 前后日志有开始刷新版本号输出再查账号 token 是否过期i_user 表有expire_time字段现象任务没有在预期时间触发排查timedatectl status核对宿主机时间与TZcompose 已为容器设置Asia/Shanghai但宿主机时钟错误仍会导致整体偏移解决校准系统时间后重启容器写在最后Campus-imaotai 适合两类人想系统了解 Spring Boot 定时任务、后台管理后台如何组织的开发者以及想在自己服务器上跑一遍容器化完整链路的实践者。需要清醒的是作者声明算法已淘汰、不提供成品预约成功率不作任何保证本项目内容定位是学习与研究账号凭证、手机号等数据由使用者自行保管使用自动化工具前请确认符合 i茅台平台规则与当地法规并控制请求频率避免给账号带来风险。【免费下载链接】campus-imaotaii茅台app自动预约每日自动预约支持docker一键部署本项目不提供成品使用的是已淘汰的算法项目地址: https://gitcode.com/GitHub_Trending/ca/campus-imaotai创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考