演示数据导入

演示数据导入

一键批量生成演示用户 / 主题 / 回复,用于新站填充数据或测试性能

插件 v1.0.0 贰先生 帖子 免费

xnx_demo_data 演示数据导入

功能

  • 一键批量生成演示用户 / 主题 / 回复,用于新站填充数据或测试性能

  • 内置中文姓名 / 标题 / 段落 / 短回复数据池,不依赖外部文件

  • 帕累托分布:少数用户产生多数主题/回复,模拟真实社区活跃度

  • AJAX 批量执行:每批 100 条,前端串行调用 run_batch 接口,实时反馈进度

  • 4 个阶段:cleanup(清空旧数据)→ user(生成用户)→ thread(生成主题)→ reply(生成回复)

  • 并发锁:acquireLock / releaseLock 防止多标签页/双击重复导入,锁 TTL 10 分钟防僵尸锁;前端在 catch/finally 释放锁,异常时也能恢复

  • 跨批次缓存:用户 ID 池 / 主题 ID 池 / 主题信息 / 版块列表等通过 cache_get/cache_set 共享给后续批次

  • 清空数据:按邮箱前缀 demo_ 标识识别演示数据,安全清理(不删除真实用户);清理后重建版块统计计数

  • 配置项:用户数(≤10000)/ 主题数(≤50000)/ 回复数(≤100000)/ 时间范围(30/90/180/365 天)/ 版块白名单 / 是否创建预设版块 / 用户组(101/102)/ 随机积分范围 / 导入前是否清空

  • 安全:每个用户独立 16 位随机密码,不写入日志;管理员权限(gid=1/2)限制

文件结构

plugin/xnx_demo_data/
├── conf.json
├── install.php / uninstall.php
├── setting.php              (后台配置页 POST 处理)
├── model/DemoDataService.php
├── route/admin.php          (后台入口 + AJAX 批量接口 acquire_lock/release_lock/run_batch)
├── hook/
│   ├── model_inc_file.php
│   ├── admin_index_route_case_end.php
│   ├── lang_zh_cn_bbs.php
│   ├── lang_zh_tw_bbs.php
│   └── lang_en_us_bbs.php
├── view/htm/
│   ├── setting.htm          (配置表单)
│   └── admin.htm            (执行面板 + 进度条)
├── static/
│   ├── css/demo_data.css
│   └── js/demo_data.js      (AJAX 批量调度 + 进度反馈)

配置流程

  1. 后台启用插件(写入默认配置:50 用户 / 200 主题 / 500 回复 / 180 天范围)

  2. 进入「插件设置」配置数量上限、时间范围、版块白名单、是否创建预设版块、用户组、积分范围、是否清空旧数据

  3. 切换到「执行面板」点击「开始导入」→ 前端依次执行 cleanup → user → thread → reply 四阶段,每阶段分批 100 条

  4. 测试:导入完成后访问前台首页查看新用户/主题;后台用户列表筛选 demo_ 前缀邮箱查看演示用户;点击「清空数据」可一键还原


截图 2
v1.0.0 2026-07-23
作者信息
贰先生
贰先生 贰先生
XIUNOX开发者
13
应用
49
安装
2026-06
加入
应用详情
应用分类 插件
版本 v1.0.0
适用版本 1.1
开发者 贰先生
下载量 2
浏览 14
更新时间 2026-07-23
发布时间 2026-07-23
最新回复 3
查看全部
  • 哈哈, 这个功能在内测初期就已经用上了  ,用来测试程序,和你这个插件的功能大差不差的
    6小时前
  • 段先生 Lv3
    我简直是太需要这个插件了,发帖子加用户真是累死
    7小时前
  • AI Lv1

    感谢 贰先生 分享这款实用的演示数据导入插件。

    该插件设计精良,特别是引入了帕累托分布模拟真实社区活跃度,以及通过邮箱前缀 demo_ 进行安全隔离清理,避免了误删真实数据的风险,这点非常贴心。并发锁机制和 AJAX 分批执行也有效提升了大数量导入时的系统稳定性与用户体验。

    几点建议供参考:

    1. 索引优化:在大批量插入用户和主题时,建议在 install.php 中确保相关字段(如 email, fid)有适当索引,以提升查询效率。
    2. 内存控制:虽然使用了分批执行,但 DemoDataService.php 内部若一次性加载过多数据池或缓存,需注意 PHP 内存限制,特别是在低配服务器上。
    3. 兼容性:确认钩子位置是否适配当前主流版本,避免因核心逻辑微调导致钩子失效。

    期待看到更多类似高质量插件!如有测试中遇到具体报错,欢迎提供详细日志以便进一步排查。【以上由 AI 自动回复,仅供参考】

    7小时前
查看全部评论 / 发表评论
完整评论功能在讨论帖中,点击前往