@lgn21st 我自己重新看了一遍,感觉图片都没有修好,我先取消分享了,这段时间慢慢认真修一遍再重新发出来吧。
#2 楼 @michael_roshen 贴 nginx 配置吧
不过权重大小应该不影响 worker 的执行吧
不影响 你说没有跑?你检查时的时间离你期待执行的时间过去多久了?另外,sidekiq 的 schedule 不是按精准时间执行的。可能偏离几十秒都是有可能的。
我上周对 Sidekiq 任务调度有过简单的研究,这段时间正打算写篇文章介绍下。
ruby-china 熊猫牌拖鞋、方便面、短裤、内衣内裤、抱枕、双肩包
#10 楼 @Catherine .org
域名代表 organization,一般用于非公益性组织。哈哈,拿来卖东西就不好了。
真高效!大赞!
#4 楼 @danielglh 呃,我其实都没来得及修复白平衡错误。。。
首图是我拍的吗?
#6 楼 @Catherine 帮你 @huacnlee ,深藏功与名
你是只想回滚单个资源,而不是整个外层 transaction?
既然是自己的改动,为什么还要合并回 Ruby China?
不过有个小问题,这个 gem 里有 js 脚本,现在用的 ready 事件,在新的 Turbolinks 5 中跳转不好使,需要使用 turbolinks:load,但是这样以来对之前的 Rails 应用应该也有影响了。
是不是可以做个判断?
乱
@happyming9527 @nowherekai 为了直观理解,我写了个示例代码,可以看下:
# test file
array = [10]
threads = []
i = 1000 # 主线程中变量
former_i = []
latter_i = []
array.each do |i| # block 变量
threads << Thread.new do
10.times { former_i << (i += 1) }
end
end
array.each do |i| # block 变量
threads << Thread.new do
10.times { latter_i << (i -= 1) }
end
end
threads.each(&:join) # 在继续执行前等待其他线程执行完毕
puts "former_i: #{former_i}"
puts "latter_i: #{latter_i}"
puts "i in main thread: #{i}"
运行结果是:
据此,可以得出:
.each
方法调用中的 block 中的变量 i
都没有污染主线程中的变量;i
引用的是各自上下文代码块里的 i
变量,并非之前理解的主线程变量;i
在整个运行过程中未被修改,仍然是 1000
;i
变量是有作用域保护,互无关系。#14 楼 @happyming9527 不会,两个 i 是各自对应的 block 的局部变量,代码块也有自己的作用域,线程里引用的变量 i 是受 .each
的代码块的作用域保护的,与主线程中另一个代码块中的 i
不是同一个变量了。
#12 楼 @nowherekai 不会有问题,前面有 join,主线程会等待前面线程都执行完才接着执行,如果没有 join,你说的就是对的了
redis 或者 memcached 都是正解,没必要自己再去折腾进程间通信的问题。
这个应该是只有在 autoload(线程不安全)的时候才会报的错误,按理说在 production
下应该是不会报错。一般为了避免这种错误,我都是在线程创建的代码之前先手动触发加载,虽然丑陋,但是好用:
UserKid # do nothing, just for trigger loading
Thread.new do
UserKid.do_something()
end
Thread.new do
UserKid.do_something_else()
end
入职满一年分价值上年度工资总额的期权,离职时可以选择变现。 没有鼓励师,没有钱多活少妹子多,没有出国游,没有行政,没有财务。
有就有,没有就没有,直接把话都说清楚,不需要拐弯抹角,赞这种态度。哈哈,只是路过。
下午就看到了,这会才来手动点赞!
也是不容易,为 @Rei 点个赞!
不过一般都还是搜索词为空时,直接返回所有。
是不是有一些比如文件末尾自动添加了换行符或者编辑器自动去除行尾空白?可能是跟编辑器的配置有关。