--- a/hooks/zmq.py Tue Apr 10 17:03:19 2012 +0200
+++ b/hooks/zmq.py Wed Apr 04 16:51:09 2012 +0200
@@ -46,3 +46,30 @@
self.repo.app_instances_bus.add_subscriber(address)
self.repo.app_instances_bus.start()
+
+class ZMQRepositoryServerStopHook(hook.Hook):
+ __regid__ = 'zmqrepositoryserverstop'
+ events = ('server_shutdown',)
+
+ def __call__(self):
+ server = getattr(self.repo, 'zmq_repo_server', None)
+ if server:
+ self.repo.zmq_repo_server.quit()
+
+class ZMQRepositoryServerStartHook(hook.Hook):
+ __regid__ = 'zmqrepositoryserverstart'
+ events = ('server_startup',)
+
+ def __call__(self):
+ config = self.repo.config
+ if config.name == 'repository':
+ # start-repository command already starts a zmq repo
+ return
+ address = config.get('zmq-repository-address')
+ if not address:
+ return
+ from cubicweb.server import cwzmq
+ self.repo.zmq_repo_server = server = cwzmq.ZMQRepositoryServer(self.repo)
+ server.connect(address)
+ self.repo.threaded_task(server.run)
+