Subversion提交后钩子

4

我创建了一个Subversion的提交后钩子,每次提交时都会发送一封电子邮件。我从/var/svn/repos/hooks中的post-commit文件调用一个Python脚本。

REPOS="$1"
REV="$2"

~/svnnotify.py $REV

但问题在于svn提交命令需要等待Python脚本先终止,这导致了提交命令的执行时间变长。有没有什么解决办法呢?
谢谢。
3个回答

4
尝试在调用脚本的行后添加一个“&”符号,使其在后台运行并立即返回。

谢谢您的回复 :) 我已经尝试过了,似乎不起作用。这是因为我正在将参数传递给脚本吗? - JoeRP
3
对我来说,在结尾处使用 & 是有效的。可能是因为我还将输出重定向(暂时重定向到一个日志文件,当然也可以是 /dev/null):/some/dir/bin/pythonscript >> /tmp/my_thingy.log 2>&1 & 这就是我的 post-commit 钩子的样子。 - Reinout van Rees

0

调用一个批处理文件,在该批处理文件中执行Python脚本,通过在批处理命令的末尾添加&符号使其在后台运行。


0
也许可以将更新放入一个简单的队列中,由cron调用的脚本捕获队列中的内容并发送消息。
队列可以是/tmp中的简单文件,sqlite文件或MySQL表格。
如果发送电子邮件需要明显的时间,可能是通知脚本中的代码有问题。将电子邮件放入本地邮件队列中不应该需要那么长时间。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接