2010年 07月 20日




月曜日は大神神社 (おおみわ神社) へ。竹田から天理経由で三輪。遠かった。

大神神社は大和国一宮、拝殿だけで本殿はない。山自体が御神体 (神奈備) になっている。

本社を適度に見たあと、檜原神社へ。こちらは鳥居だけで拝殿もない。

炎天下で大変だったが山は美しくてよかった。

山全体が御神体ってのは、例えば山全体を本殿であると考えると大変面白く、古代人はちゃんと自然の中に自分達を置き客観的な評価を自分たちに下していたような気がした。人間がそれを作らなくてもそれはそこにあったのだろう。

capistrano で複数のサーバデプロイ時に Mac OS だと SSH コネクションで止まる

http://subtech.g.hatena.ne.jp/secondlife/20090710/1247208362 というエントリがあって、この対処をしていたのですが、この度さらに多くのバックエンドを対象にコネクションをはろうとしたところ、全くうんともすんともいかなくなったので以下の対処をしました。

capistrano/configuration/connection.rb を書きかえるのですが

        threads = Array(servers).map { |server| establish_connection_to(server, failed_servers) }
        threads.each { |t| t.join }

となっている部分を

        i = 0
        threads = Array(servers).map { |server|
            p [i+=1, servers.length, server]
            establish_connection_to(server, failed_servers).join
        }
        #threads.each { |t| t.join }

のようにし、シーケンシャルにコネクションをはるようにしました。ついでにプログレスと対象サーバを出すことで安心感を演出しました。

もちろんそもそもこのコードはコネクションにかかる時間を節約するためにThreadにしているわけですから速度は落ちます。

自分の環境では1コネクションあたり0.5秒ぐらいかかってしまうので、40サーバぐらいあると、コネクションだけで20秒ぐらいかかってしまいます。そろそろ別のデプロイ方法を考えはじめてもよさそうですがまだ我慢できる程度なのでなんともいえないです。