コミットが行われるたびにメールを送信するSubversionのコミット後フックを作成しました。/var/svn/repos/hooksにあるコミット後のファイルからPythonスクリプトを呼び出しています。
REPOS="$1"
REV="$2"
~/svnnotify.py $REV
ただし、問題は、svn commitコマンドが、Pythonスクリプトが最初に終了するのを待つため、終了に時間がかかることです。これを回避する方法はありますか?
ありがとうございました
スクリプトを呼び出す行の後にアンパサンド(&
)を追加して、スクリプトをバックグラウンドに置き、すぐに戻ってみてください。
バッチファイルを呼び出し、そのバッチファイルでPythonスクリプトを実行して、バッチファイル(&)のコマンドの最後にアンパサンドを追加してバックグラウンドで実行します。
たぶん、更新を単純なキューに入れて、cronから呼び出されたスクリプト実行によってすくい上げられ、キューに何かが入っている場合はメッセージを送信します。
キューは、/ tmp内の単純なファイル、sqliteファイル、またはMySQLテーブルの場合があります。
電子メールの送信に著しく時間がかかる場合は、通知スクリプトのコードに問題がある可能性があります。電子メールをローカルメールキューに入れるのにそれほど時間はかからないはずです。