V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
missqxy
V2EX  ›  职场话题

第一次处理大数据问题

  •  
  •   missqxy · 2018-10-15 17:56:33 +08:00 · 2226 次点击
    这是一个创建于 2249 天前的主题,其中的信息可能已经有所发展或是发生改变。

    是这样,后台语言是 php。现在出现情况是:我公众号粉丝数据有 2 万多条 我现在想通过微信提供的接口获取男女信息统计男女比例。我业务逻辑是这样:先获取 openidList 大约是 1 万条数据,然后我再循环获取每位粉丝信息。我把男女数据放在变量中了,没有存数据库 。可是现在请求这个接口出现的情况是一直请求中, 然后过了一段时间 nginx 返回 502。 请教各位该如何处理。

    11 条回复    2018-10-24 17:04:55 +08:00
    drush
        1
    drush  
       2018-10-15 18:01:09 +08:00
    放 queue 里
    missqxy
        2
    missqxy  
    OP
       2018-10-15 18:02:04 +08:00
    @drush 可以说明白点吗
    drush
        3
    drush  
       2018-10-15 18:07:40 +08:00
    你现在应该是 execution timeout 或者唔够内存。
    建议将那个 list 里的 user 放到 queue 里, 后面再慢慢处理。
    yexiangyang
        4
    yexiangyang  
       2018-10-15 18:08:33 +08:00
    试试多线程执行吧 老铁
    linauror
        5
    linauror  
       2018-10-15 18:10:40 +08:00
    首先 curl 还是比较耗时间的,毕竟一个个请求的话,需要 1 万多次请求。可以改成批量获取,最多一次可获取 100 条。
    casparchen
        6
    casparchen  
       2018-10-15 18:15:01 +08:00 via iPhone
    怕不是对大数据有什么误解哦
    missqxy
        7
    missqxy  
    OP
       2018-10-15 18:19:03 +08:00
    @casparchen 这是单单一个公众号 所有公众号粉丝有 350 万
    hackerang
        8
    hackerang  
       2018-10-15 21:57:41 +08:00
    @missqxy 你要做分页,多线程,性能不够的话加机器,不过你这个数据量确实不大。
    hackerang
        9
    hackerang  
       2018-10-15 21:59:28 +08:00
    @missqxy 502 有可能是 nginx 的问题,要看日志。不过一直 pending 的话要调优,优化 sql,优化你的代码。如果放在内存里的话要保证机器性能是够的。
    xsir2020
        10
    xsir2020  
       2018-10-15 22:34:04 +08:00
    nginx 在请求微信接口返回 502 错误,一般都是处理超时或者处理慢。
    而且你这个数据量再怎么大数据,调用接口也不可能一次性调用 2 万条吧。
    微信接口有个批量获取用户基本信息,一次 100 条,你也就是请求 200 次就行。
    不管咋样,你只能慢慢存起来慢慢取呗。
    liuzhen
        11
    liuzhen  
       2018-10-24 17:04:55 +08:00
    所以为啥不入库?入库再 SQL 统计不是更快吗?

    你这情况是在 http 默认超时时间内,接口无法在后台完成 请求微信接口一万多条数据的耗时对吧

    不能理解为什么要实时去调微信的接口,提前把微信数据都拉到本地再过滤就好了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4183 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 42ms · UTC 10:06 · PVG 18:06 · LAX 02:06 · JFK 05:06
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.