RETIRED, Jenkins plugin to publish build events via ZMQ PUB SUB.
Go to file
Clark Boylan 135d273963 Use single thread to perform all zmq sends.
jeromq does not appear to be thread safe. Use a single thread to call
send on the ZMQ socket to avoid contention for those resources. Have the
RunListener pass events to the ZMQ sender thread with a BlockingQueue.

Do not block when offering events to that queue to avoid
starvation/deadlock in the Jenkins job runners. Events may potentially
be lost if ZMQ cannot keep up.
2013-01-31 10:59:53 -08:00
src/main Use single thread to perform all zmq sends. 2013-01-31 10:59:53 -08:00
.gitignore Initial proof of concept for zmq event publisher. 2013-01-23 10:40:09 -08:00
LICENSE Initial proof of concept for zmq event publisher. 2013-01-23 10:40:09 -08:00
README Use single thread to perform all zmq sends. 2013-01-31 10:59:53 -08:00
pom.xml Use jeromq instead of jzmq. 2013-01-25 13:42:38 -08:00
run-fast Initial proof of concept for zmq event publisher. 2013-01-23 10:40:09 -08:00

README

This is a Jenkins plugin that will publish Jenkins Job run events
(start, complete, finish) to a ZMQ PUB socket. By default the PUB
socket is on TCP port 8888 and no Job events will be published.
You can choose to enable event publishing for all jobs in the
Jenkins' global config or enable the plugin on a per job basis.

This plugin uses jeromq to satisfy the dependency on ZMQ. It is
possible to use jzmq instead if you need the features that jeromq
is lacking; however, it is a pain to get jzmq built and is less
portable. If you really really want jzmq look back in the git
history and you will find the old versions of this plugin that
depended on jzmq.

TODO:
- Avoid reading in the global config for each event if possible.
- Need to allow ZMQRunnable thread to die if something truly
  unexpected happens. The RunListener should then start a new
  DaemonThread to handle further events.
- Cleanup config.jelly for the non global Job config.

This plugin borrows heavily from the Jenkins Notification Plugin
https://github.com/jenkinsci/notification-plugin. That plugin
does much of the same work and where applicable I have gone the
easy route and copied the work they have done.