0

Apache2とUbuntuLTC10.04を実行しているSlicehostサーバーにRailsアプリをインストールしています。これまでのところ、物事はうまく機能しています。ファイルを編集し、すばやく実行するmongrel_rails cluster::restartと、変更が本番環境に反映されます。しかし、突然このプロセスは崩壊しました。

たとえば、にあるというクラスがMasterあり/lib/master.rbます。このクラスに、単に実行する新しいメソッドを追加してからputs "it works!"、mongrelクラスターを再起動しました。本番ログを見ると、サーバーはエラーをスローし、このメソッドは存在しないと考えています。ruby script/console productionただし、を使用してコンソールに移動すると、この新しい方法を完全に使用できます。Masterクラス全体を含むファイルを削除してみました。もう一度、プロダクションはそれがまだそこにあると思いましたが、プロダクションコンソールはそれが欠落していることを正しく認識しました。

何か案は?実稼働環境は、もはや存在しないクラスをどのように検出できますか?

4

1 に答える 1

1

おかしい、私はこれをデバッグするのに2時間費やし、それからStackOverflowに投稿して、20分でそれを理解します。

問題は、バックグラウンドジョブも再起動する必要があることです。彼らは/libに保存されている古いバージョンのクラスを実行していました。この問題がこれまで私を悩ませたことはないのは興味深いことです。

于 2010-06-25T01:23:08.673 に答える