剰余算の自己代入の優先順位
よく変数に数を足し込むときには、+=を使う。
これと同じように掛け算、割り算も*=、/=が使えるけれど、この場合の四則演算の優先順位が気になったのでやってみたメモ。
a = 120 a /= 12 + 3 puts a #=> 8 # 120 / (12 + 3) = 8 # 120 / 12 + 3 = 13 b = 12 b *= 5 + 3 puts b #=> 96 # 12 * (5 + 3) = 96 # 12 * 5 + 3 = 63
よって、右辺が計算された結果が先に格納された値と演算しているということがわかった。
Capistrano3のデプロイのリポジトリ先を変更する
Capistrano3を使ってデプロイを行っているアプリがあったのだけれど、途中でgitのリポジトリを変更しなければならなくなってしまったので、そのときのメモ。
config/deploy.rbのrepo_urlを変更する。
diff --git a/config/deploy.rb b/config/deploy.rb index 871df02..ba68d20 100644 --- a/config/deploy.rb +++ b/config/deploy.rb @@ -2,7 +2,7 @@ lock '3.2.1' set :application, 'mywebapp' -set :repo_url, 'git@git123.foo.com:mywebapp.git' +set :repo_url, 'git@git789.bar.com:mywebapp.git' # Default branch is :master ask :branch, proc { `git rev-parse --abbrev-ref HEAD`.chomp }.call
新しいgitリポジトリに向き先を変えて、pushする。
$ git remote set-url origin git@git789.bar.com:mywebapp.git $ git push -u origin master
ここまでは簡単なのだけれど、Capistrano3ではこのままだとまだ旧リポジトリの方を参照し続けてしまうので、デプロイ先のサーバで作業が必要だった。
$ cd /var/www/mywebapp $ rm -r repo
deploy_toに設定しているディレクトリの、「repo」というディレクトリに既存のリポジトリ情報が入っているので、一度消してしまえば次からは上で設定したrepo_urlのリポジトリを見るようになる。
試してないけど、
$ cat repo/config [core] repositoryformatversion = 0 filemode = true bare = true [remote "origin"] url = git@git123.foo.com:mywebapp.git fetch = +refs/*:refs/* mirror = true
のurlを書き換えるだけでもいけるかもしれない。
あとはデプロイ。
$ bundle exec production deploy
参考:
ruby - Capistrano deploy fails after I changed the repository URL - Stack Overflow
SidekiqのWorkerクラス内でJobIDを知る
Sidekiq::Workerをincludeして使っているクラス内のperformメソッド内で自分のJobIDを知るには、self.jidで取れる。
class MyWorker include Sidekiq::Worker def perform job_id = self.jid puts job_id # some codes end end job_id = MyWorker.perform_async
なので、Sidekiqに登録したJobIDを、そのままworkerの処理結果のキーとして使えば結果の取得が簡単だ。