我创建了一个Subversion的提交后钩子,每次提交时都会发送一封电子邮件。我从/var/svn/repos/hooks中的post-commit文件调用一个Python脚本。 REPOS="$1" REV="$2" ~/svnnotify.py $REV 但问题在于svn提交命令需要等待Python脚本先终止,这导致了提交命令的执行时间变长。有没有什么解决办法呢?谢谢。
也许可以将更新放入一个简单的队列中,由cron调用的脚本捕获队列中的内容并发送消息。队列可以是/tmp中的简单文件,sqlite文件或MySQL表格。如果发送电子邮件需要明显的时间,可能是通知脚本中的代码有问题。将电子邮件放入本地邮件队列中不应该需要那么长时间。
&
是有效的。可能是因为我还将输出重定向(暂时重定向到一个日志文件,当然也可以是/dev/null
):/some/dir/bin/pythonscript >> /tmp/my_thingy.log 2>&1 &
这就是我的 post-commit 钩子的样子。 - Reinout van Rees