
i茅台自动预约系统Docker一键起服多账号调度与自动选店一次搞定【免费下载链接】campus-imaotaii茅台app自动预约每日自动预约支持docker一键部署本项目不提供成品使用的是已淘汰的算法项目地址: https://gitcode.com/GitHub_Trending/ca/campus-imaotaicampus-imaotai 这个开源项目做的是 i茅台自动预约 这件事把每天9点整打开 App、手动选门店、填数量、点提交这套限时手工操作变成一条自动执行的流水线——你在 Web 管理台里配好账号系统自动选店、按分钟调度预约、记录结果并推送通知。 它到底能做什么定时自动预约服务启动后按内置 cron 跑9 点申购窗口开放后每分钟批量执行账号无需值守。多账号管理一个后台批量维护多个 i茅台账号手机号、userId、token、设备号、省市坐标每个账号可挂多个预约商品itemCode用分隔各自独立执行。两种智能选店策略可按本市出货量最大的门店优先或按经纬度算距离选本省最近的门店本市无货时自动回退到最近门店Haversine 公式算球面距离。状态追踪与通知每次预约的入参、选中的 shopId、接口返回都会写进操作日志18:05 自动查询申购结果命中后通过 PushPlus 推送到手机。顺手的日常任务自动旅行、首次旅行分享、领取申购耐力值等动作也一并代跑。⚙️ 把服务跑起来docker-compose 一键起服部署侧没有额外编译环节整个环境由 docker-compose.yml 拉起MySQL 5.7、Redis、Nginx 和管理端服务campus-server监听 8160 端口数据库初始化脚本在 doc/sql/容器配置目录在 doc/docker/。git clone https://gitcode.com/GitHub_Trending/ca/campus-imaotai cd campus-imaotai/doc/docker docker-compose up -d对新手比较友好的一点是不需要单独装数据库和缓存镜像里自带时区与端口约定只要宿主机目录按 compose 里的挂载路径建好mysql/redis/nginx 的 conf、data 目录命令跑完就能进管理台。提前说清项目描述里写明不提供成品且所依赖的接口算法已随 App 迭代淘汰。把它当作一套定时任务 多账号调度 结果追踪的完整参考实现来学习价值大于直接跑通申购本身。 一次预约是怎么被拆开的与其按用户/门店/日志三个模块看不如跟着一次预约的执行链路走一遍四个环节各有对应代码CampusIMTTask.java 管调度IMTServiceImpl.java 管执行。配置层账号和参数先就位管理台里每个账号一行手机号、token/cookie、省市名与经纬度、预约商品 code、选店类型shopType、预约分钟、是否随机分钟、PushPlus token。token 带 30 天到期时间字段过期与否一眼可见。决策选店请求发出前算一次每个账号执行时先查该商品在所在省份的投放门店与库存结果缓存到 Redis再按 shopType 决策类型为 1 时在本市门店里取库存量最大的那家取不到就回退到全省最近的类型为 2 时直接按坐标距离取最近一家。门店全量列表由定时任务刷新每天 7:10、7:55、8:10、8:55所以 9 点开窗时用的是当天数据。自动执行按分钟批量、逐个串行到点批次按当前分钟筛出该出手的账号逐个账号执行单个账号内多个商品之间随机延迟 35 秒账号之间固定间隔 3 秒请求体中的敏感参数经 AES 加密后发出。1 点 10 分还有一次批量任务为开启随机的账号重新抽取当天预约分钟避免大家挤在同一秒。日志反馈写库、可查、可推送执行结果预约项目、shopId、返回报文或报错信息经IMTLogFactory写入操作日志成功与失败都能逐条点开18:05 的申购结果查询任务会把预约成功的记录补写进去并触发消息推送。 从能用到好用账号 / 门店 / 环境三档调优清单账号档先用添加账号走一遍完整登录发送验证码→登录确认 token、设备号写入成功再谈批量。开启随机分钟randomMinute让多个账号的出手时间错开而不是全部压在同一分钟。多账号互为备用一个账号 token 失效时其余账号仍能覆盖同一批商品。门店档所在城市只有一家投放门店时把 shopType 切到位置附近避免死等本市库存。定期确认门店列表刷新成功日志里有刷新数据字样门店数据过期会导致选店失败。坐标lat/lng尽量填实际常驻地而非市中心距离策略才准确。环境档预约窗口集中在 9 点宿主机网络抖动会直接吃掉成功率优先保证到目标域名的连接稳定。观察 MySQL/Redis 容器内存与连接数长期运行建议定期清理历史日志表。compose 的挂载目录/docker/mysql、/docker/redis、/docker/nginx、/docker/server要提前建好否则容器起得来但数据不落盘。 翻车时先看这里现象预约请求返回失败日志里是接口报错→ 可能原因token 已过期、接口参数或签名算法与当前 App 版本不匹配项目自述使用已淘汰的算法。 → 处理重新走登录流程刷新 token 与设备号若整批账号都报同类错误先确认接口是否仍可用别急着加账号。现象账号都执行了但一个都没约上→ 可能原因所有账号分钟相同、同一时刻挤向同一门店或本市门店当日无该商品投放。 → 处理开启随机分钟错开执行换一家有库存的城市或改用距离策略次日 18:05 的结果日志里核对是执行失败还是参与未中签两者性质不同。现象容器起了但页面打不开或任务不跑→ 可能原因MySQL/Redis 未就绪、server 的 conf 挂载目录缺失导致配置没加载。 → 处理docker-compose ps看各容器状态进 mysql 容器确认库campus_imaotai已按 doc/sql/ 初始化检查 8160 端口是否被占用。现象选店环节报门店商品id为空→ 可能原因门店列表缓存刷新失败9 点时拿不到当日投放数据。 → 处理查 7/8 点刷新任务的日志失败可手动触发刷新接口管理台刷新茅台商品列表后再观察。 收尾三类读者各走一步个人用户先把 docker-compose 跑起来、导入自己的手机号完成一次登录跟着当天的操作日志确认链路走通再考虑加功能。多账号运营先给每个账号设好随机分钟与正确的省市坐标用一天时间核对日志里的执行分布确认没有挤在同一分钟。运维同学把 MySQL 数据目录纳入备份把 9 点窗口前后的容器状态与日志做成例行巡检项日志表定期归档。【免费下载链接】campus-imaotaii茅台app自动预约每日自动预约支持docker一键部署本项目不提供成品使用的是已淘汰的算法项目地址: https://gitcode.com/GitHub_Trending/ca/campus-imaotai创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考