Ruby China
  • 社区
  • 招聘
  • Wiki
  • 酷站
  • Gems
  • 注册
  • 登录
wxianfeng
@wxianfeng
高级会员
第 132 位会员 / 2011-11-18

Alibaba Inc.
北京
2 篇帖子 / 158 条回帖
14 关注者
0 正在关注
21 收藏
/dev/web/ruby
GitHub Public Repos
  • hanzi_to_pinyin 30

    ✍️ Chinese Hanzi To Pinyin, Writen In Ruby

  • hanzi_to_pinyin_node 10

    chinese hanzi to pinyin via node.js

  • exception_log 5

    send rails exception to email and give web ui to watch exception, and it's live stream

  • rake_ui 3

    Rails 3.1 engine that provides a web UI for Rake tasks

  • b2c 2

    b2c website, such as wholesale , E-commerce website

  • pay-ticket 2

    pay ticket by BitCoin

  • rmarshal 2

    Load Ruby marshal data In Lua

  • simple-captcha 2

    captcha for Rails

  • ruby-phoenix 1

    Ruby Client To Run SQL Of Apache Phoenix.

  • false_destroy 1

    when mark a record deleted in DB, then run callback after_false_destroy like after_destroy in rails

More on GitHub
  • 概况
  • 话题
  • 回帖
  • 收藏
  • 正在关注
  • 关注者
  • 有木有鼠标控 at 2018年08月24日

    我用的 罗技 MX Master 2s

  • 这里有多少人用机械键盘? at 2018年08月24日

    我用的 Cherry MX Board 8.0 青轴,外观和 Mac 很搭

  • Grape on Rails + Puma 线程安全性的讨论? at 2018年07月03日

    @dudu_zzzz 描述下我遇到的问题,

    事情发生在 2016 年 03 月,我们 API 采用 Grape 开发,线上请求量非常大,nginx 阻塞严重,于是把 unicorn 改成了 puma,以提高并发,上线后收到用户反馈,看到了别人数据。。

    刚开始我们一度怀疑是 current_user 问题,最后发现不是这里的问题

    根源是当时对象的 json 序列化用了非 release 版本的 active_model_serializers,其使用了非线程安全的类变量导致,也就是说同时来了两个用户的请求,A 用户 write 的类变量,有可能被 B read 到。。

    当时的 Gemfile 配置: gem 'active_model_serializers', git: 'https://github.com/rails-api/active_model_serializers.git', ref: '2df8804'

    可以直接把 active_model_serializers clone 下来,git checkout 到 2df8804 找到该处代码:

    active_model_serializers/lib/active_model/serializer.rb

    def read_attribute_for_serialization(attr)
      if self.class._serializer_instance_method_defined?(attr)
        send(attr)
      elsif self.class._fragmented
        self.class._fragmented.read_attribute_for_serialization(attr)
      else
        object.read_attribute_for_serialization(attr)
      end
    end
    

    测试代码没发现这个问题?
    测试代码是单线程跑的,不会出现该问题。

    怎么排查到这个问题的 ?
    不同用户并发请求压测,最小原则一步一步注释代码,排除法找到是 active_model_serializers 问题,进一步发现用了类变量。

    教训 ?
    1、不要使用非正式版本的代码,隐患极大。
    2、测试代码要测试多用户并发场景,验证返回的数据。

    供参考,欢迎交流 ~ @dudu_zzzz

  • [北京] 东方网力股份科技有限公司诚招 Ruby 工程师 at 2014年01月26日

    顶 豪哥 :D

    @evan127

  • ruby 实时推送 at 2013年11月15日

    我在用 nginx-push-stream

  • 谁遇到过 unicorn 传不回数据导致超时的问题 at 2013年10月30日

    @ShiningRay nginx 60s 有问题啊,unicorn 处理超过 60s 的话,nginx 就返回 504 了。

  • 阿里员工来往二维码 at 2013年10月27日

    来往 经常 秒退 ...

  • Rails 4 中使用 simple_captcha 有没有成功的? at 2013年10月19日

    之前也遇到过

    https://github.com/wxianfeng/simple-captcha/issues/2

  • NodeJS 即将超越 Ruby, 正在悄悄改变开源面貌 at 2013年09月21日

    @xieren58 看着不错

    nodejs 不觉得活跃啊,我在 cnodejs.org 问了问题,少有人回答 😢

  • NodeJS 即将超越 Ruby, 正在悄悄改变开源面貌 at 2013年09月21日

    @xieren58 @nightire promise 我当然知道了. 很多人写的 依然是原生的,因为 nodejs 天生就是利用 callback 来实现异步 io, 事件驱动。不是你用 promise 就能解决异步思维编程方式的。

    让我说 go 的 goroutine, lua 的 coroutine 同步编程写法,轻松实现高并发,写起来舒服多了。

  • NodeJS 即将超越 Ruby, 正在悄悄改变开源面貌 at 2013年09月21日

    npm 包增长迅速,得益于 javascirpt 开源库多有关。

    nodejs 异步 callback 写法,会导致嵌套很深,很反人类,也注定只能是小众范畴。

  • 推酷送书活动 at 2013年09月21日

    @kafka0102 <c 和指针> 已收到,顺便 show 下我书架,嘎嘎。

    book

  • 推酷送书活动 at 2013年09月13日

    @kafka0102 已选,weibo 也帮转了,id 是 wxianfeng, 送两本呗。

  • Ruby 性能真的比 Node 差这么多么? at 2013年08月20日

    我在用 ngx_lua 提供 json api, 性能比 node.js 还猛。

  • 有没有江苏的小伙伴 at 2013年08月12日

    顶一把,三年前在无锡,现在北漂。

  • User.current 这种用法到底靠谱不靠谱? at 2013年08月01日

    用户乱串 我们也遇到过,因为后面的用户复用了之前的线程变量。

    所以应该在每次请求结束后清除线程变量,可以放到 application_controller 中

    after_filter :clear_thread_variable
    
    def clear_thread_variable
      Thread.current[:user] = nil
    end
    
  • [求助] mongodb 老是挂掉,ruby 进程负荷高超时退出,怎么破 at 2013年07月04日

    我之前 resque 老是 crash 掉,用了 god 解决的,也许这里可以借鉴下。

  • 日志如何以半天作为分割 at 2013年05月17日

    利用 cron 不是很好實現嗎

  • 服务器自动监控并报警. at 2013年05月17日

    報警可以使用 nagios, 提醒可以使用 郵件,短信 (飛信,139 郵箱),IM,微信等很多方式...

  • 聊聊 Ruby 中的 block, proc 和 lambda at 2013年04月23日

    哈哈,好久不见啊。

    每次我用的时候,都是想到下面这关系 &proc => block

  • 推荐 2 本中高级的 Ruby 书籍 at 2013年03月20日

    @yzhang
    http://book.douban.com/subject/3351348/

  • 推荐 2 本中高级的 Ruby 书籍 at 2013年03月19日

    我第一本进阶书是 Rails 高级编程 , 有同感的吗?

  • 生成随机字母的精妙代码 at 2013年03月07日

    shuffle 中文叫洗牌

  • 多台服务器同步配置文件 at 2013年01月06日

    我们也有几台服务器 配置文件都是放在 git 中的,这边 push 别地 pull 就行了,很方便。

  • Ruby China Notifier for Mac 客户端 1.2 发布 at 2013年01月06日

    什么语言开发的?

  • 服务器端耗时异常?? at 2013年01月06日

    你这监控是啥 new_relic?

  • 请问如何让 date 类型可以和 datetime 进行比较? at 2013年01月06日

    统一先 parse 后再比较

  • 自关联该怎么写? at 2013年01月06日

    同意楼上 用 NestedSet 模型吧,这个模型太棒了。

  • 总结教训 at 2013年01月06日

    说下我们的备份方案: 1, RAID 1 2, 每天夜间 rsync 增量备份 3, 每天夜间 rsync 异地机房备份 4, mysql 主从复制

  • 《Rails3 in Action》真是一本好书! at 2013年01月06日

    同感,从 Rails 高级编程 中学了很多招。

  • 1
  • 2
  • 3
  • …
  • 5
  • 6
  • 下一页
关于 / RubyConf / Ruby 镜像 / RubyGems 镜像 / 活跃会员 / 组织 / API / 贡献者
由众多爱好者共同维护的 Ruby 中文社区,本站使用 Homeland 构建,并采用 Docker 部署。
服务器由 赞助 CDN 由 赞助
iOS 客户端 / Android 客户端 简体中文 / English