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 做一个
有足够资金当然是躺着啦
谢谢,我再研究研究
我用 github copilot,效率非常高
一直没能成功从 webpacker 迁移到 importmap 上,按照官方文档一步一步试,不知道为啥不成功
copilot 可以写 test case
把我的网站升级到 ruby 3.2 + yjit + jemalloc 了
谢谢提醒,回头去改一下。
互相学习。我对于 UI/UX 理解很少,所以样式和交互体验做的不好。
👍
产品的思路更重要,代码大多数人都可以堆出来
linode 最低配置 vm $5/month,免费公网 IP,非常稳定
美国移民、签证相关的数据统计
现在日均 pageview 在 30k 左右,周末会比较少一点
我最近试了一下 solr + sunspot,目前感觉还不错 https://github.com/sunspot/sunspot
谢谢。我去看一看。目前我用了 newrelic 去收集一些 metrics,然后 system 的 metrics 用 linode 自带的 longview
问题解决
是因为我用了 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 于是依样画葫芦改了一下。
intellij
我用上了 ruby 3.1 + rails 7-0-stable
谢谢提供信息,刚去注册了一个
我没碰到这个问题唉,我刚又试了一下,还是可以创建新的 project
👍
输入框可以翻数字
可以吧
padrino g project cool --orm sequel
还可以试试 padrino
A A A A A A
rsync with exclude
rsync -av --progress sourcefolder destinationfolder --exclude thefoldertoexclude
ActiveRecord session store 已经从 rails 中剥离出来了,需要添加 gem 依赖
首先把 img src 的值当中第一个"/"之前的内容全去掉,然后再在前面加上 baseurl