Ruby China
  • Topics
  • 招聘
  • Wiki
  • 酷站
  • Gems
  • Sign Up
  • Sign In
Jin Shen
@crazyjacky
Member
NO. 17422 / 2015-03-02

Seattle
9 Topics / 32 Replies
5 Followers
0 Following
22 Favorites
GitHub Public Repos
  • rspotify 0

    A ruby wrapper for the Spotify Web API

  • spark-lineage 0

    Spark SQL listener to record lineage information

  • incubator-livy 0

    Mirror of Apache livy (Incubating)

  • spark 0

    Mirror of Apache Spark

  • Algorithms-and-Data-St... 0

    Ruby implementation of Algorithms,Data-structures and programming challenges

  • UC4-Automic---Java-API... 0

    Development Framework for CA | Automic | UC4 Java API with examples

  • rails-chatting 0

    Realtime chatting room based on Rails5.

  • the-art-of-command-line 0

    Master the command line, in one page

  • simditor-rails 0

    Rails assets wrapper for https://github.com/mycolorway/simditor

  • simditor 0

    An Easy and Fast WYSIWYG Editor

More on GitHub
  • Overview
  • Topics
  • Replies
  • Favorites
  • Following
  • Followers
  • 数据库实现的分布式锁 at April 20, 2024
    require 'active_record'
    require 'mutex_m'
    
    class ScheduleLock
    
      def initialize
        @locked = false
        @mutex = Mutex.new
      end
    
      def lock(name)
        @mutex.synchronize do
          ActiveRecord::Base.transaction do
            lock = ActiveLock.find_or_create_by!(name: name)
            host_name = `hostname`.strip
            if lock.locked?
              Rails.logger.error "Lock #{name} is already locked by #{lock.host}"
              return
            else
              lock.update!(locked: true, host: host_name)
              @locked = true
            end
          end
        end
      end
    
      def unlock(name)
        @mutex.synchronize do
          ActiveRecord::Base.transaction do
            lock = ActiveLock.find_or_create_by!(name: name)
            if lock.locked?
              lock.update!(locked: false)
              @locked = false
            end
          end
        end
      end
    
      def with_lock(name)
        lock(name)
        return unless @locked
    
        begin
          yield
        ensure
          unlock(name)
        end
    
      end
    end
    

    可以自己写一个,我在自己项目里面就这样简单的基于 activerecord 做一个

  • 如果有足够的资金让大家去创业,你们会干啥呢? at December 02, 2023

    有足够资金当然是躺着啦

  • Rails 升级到 7.1.1 之后,尝试升级 Rack 到 3.0,很多 ruotes 直接 404 at October 16, 2023

    谢谢,我再研究研究

  • 大家用 ChatGPT 辅助写代码多吗? at August 31, 2023

    我用 github copilot,效率非常高

  • 用了 importmap 之后,本地的 js 脚本怎么打包? at May 24, 2023

    一直没能成功从 webpacker 迁移到 importmap 上,按照官方文档一步一步试,不知道为啥不成功

  • 有没有用过 Copilot 的大哥,值得购买吗? at May 24, 2023

    copilot 可以写 test case

  • Ruby 3.2 YJIT, malloctrim, jemalloc 性能测试 at January 14, 2023

    把我的网站升级到 ruby 3.2 + yjit + jemalloc 了

  • 使用 Rails 制作了一个任天堂 Switch 价格追踪网站 at July 30, 2022

    https://hilites.today/

  • 使用 Rails 制作了一个任天堂 Switch 价格追踪网站 at July 26, 2022

    谢谢提醒,回头去改一下。

  • 使用 Rails 制作了一个任天堂 Switch 价格追踪网站 at July 26, 2022

    互相学习。我对于 UI/UX 理解很少,所以样式和交互体验做的不好。

  • 使用 Rails 制作了一个任天堂 Switch 价格追踪网站 at July 26, 2022

    👍

  • 破圈 at July 01, 2022

    产品的思路更重要,代码大多数人都可以堆出来

  • 在家里部署一个公开访问的 web 服务 at May 30, 2022

    linode 最低配置 vm $5/month,免费公网 IP,非常稳定

  • 纪念一下,终于通过了 google adsense 的审批 at May 16, 2022

    美国移民、签证相关的数据统计

  • 纪念一下,终于通过了 google adsense 的审批 at May 16, 2022

    现在日均 pageview 在 30k 左右,周末会比较少一点

  • 我要做一個模糊搜尋功能 但看了 GitHub 看不懂文檔 可不可以幫幫我 at May 15, 2022

    我最近试了一下 solr + sunspot,目前感觉还不错 https://github.com/sunspot/sunspot

  • 请教一下,puma 如何记录 state? at April 29, 2022

    谢谢。我去看一看。目前我用了 newrelic 去收集一些 metrics,然后 system 的 metrics 用 linode 自带的 longview

  • Apache2 mod_proxy 运行一段时间后报 403 Forbidden 的错 at April 28, 2022

    问题解决

    是因为我用了 rack_attack gem,同一个 ip 如果 5 分钟内请求超过 200 次,就 ban for 1 hour。 之前单机没问题,后来流量涨了,于是用了 apache2 的 mod_proxy,于是从 proxy 到 backend 服务器,backend 服务器 rack 的 request.ip 返回的是 proxy 的 ip,这样就导致了过一阵之后,proxy ip 就被 banned,以至于一直报 forbidden 的错。

    google 一下之后,rack_attack 的 github 上有在讨论这个问题 https://github.com/rack/rack-attack/issues/145 于是依样画葫芦改了一下。

  • 现在大家都在用什么软件做 Ruby on Rails 的 IDE? at April 20, 2022

    intellij

  • Rails 7 正式发布(译文) at January 04, 2022

    我用上了 ruby 3.1 + rails 7-0-stable

  • 分享个用了两年的羊毛 at October 24, 2021

    谢谢提供信息,刚去注册了一个

  • Sinatra 的 app 模板,提供一些胶水代码支持类似 Rails 的体验 at September 17, 2021

    我没碰到这个问题唉,我刚又试了一下,还是可以创建新的 project

  • 搞了个记录工具 at September 17, 2021

    👍

    输入框可以翻数字

  • Sinatra 的 app 模板,提供一些胶水代码支持类似 Rails 的体验 at September 17, 2021

    可以吧

    padrino g project cool --orm sequel
    
  • Sinatra 的 app 模板,提供一些胶水代码支持类似 Rails 的体验 at September 16, 2021

    还可以试试 padrino

  • 作为一个 IT 工程师,你的英语水平到底如何? at August 05, 2016

    A A A A A A

  • Shell 备份目录问题 at June 06, 2016

    rsync with exclude

    rsync -av --progress sourcefolder destinationfolder --exclude thefoldertoexclude

  • Rails 4.2.5 执行 rake db:session:create 的问题 at February 27, 2016

    ActiveRecord session store 已经从 rails 中剥离出来了,需要添加 gem 依赖

  • 关于一个 Sed 命令的,谁能来解释一下 at September 15, 2015

    首先把 img src 的值当中第一个"/"之前的内容全去掉,然后再在前面加上 baseurl

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