如何编写一个TeamCity通知插件,将执行没有订阅用户



我想写一个插件来处理通过第三方应用程序在iOS, Android和Windows手机上运行的通知。应用程序本身处理用户订阅,TeamCity不需要处理订阅。

TeamCity插件文档说:

  • 通知只有在给定事件至少有一个订阅用户时才会发送。

api的方法包含一个订阅用户的集合:

  • public void notifyBuildSuccessful(SRunningBuild SRunningBuild, Set sUsers);

即使没有用户通过TeamCity本身注册为插件订阅者,我如何才能让TeamCity调用我的通知插件?

在TeamCity中有两种方法可以实现自定义通知:

  1. 使用TeamCity用户的通知规则,实现一种新的通知传递方式。这就是TeamCity捆绑通知的实现方式(电子邮件,Jabber等)
  2. 监听所有相关的系统事件,在代码中决定通知哪些用户哪些事件并发送这些通知。

第一种方法在您参考的TeamCity文档中有描述。

第二个方法是注册所有服务器事件并按您喜欢的方式处理它们。WebHooks插件有一个这种方法的例子。一个相关的注意事项:如果处理偶数可能需要时间,我建议异步执行,以免由于服务器事件处理缓慢而导致服务器停滞。

最新更新