0
0
Fork 1
mirror of https://mau.dev/maunium/synapse.git synced 2024-12-16 03:33:51 +01:00

Add twisted Service interface

This commit is contained in:
Erik Johnston 2015-01-07 13:46:37 +00:00
parent a039e2544c
commit 82be4457de
2 changed files with 19 additions and 3 deletions

View file

@ -19,6 +19,7 @@ from synapse.storage import prepare_database, UpgradeDatabaseException
from synapse.server import HomeServer from synapse.server import HomeServer
from twisted.internet import reactor from twisted.internet import reactor
from twisted.application import service
from twisted.enterprise import adbapi from twisted.enterprise import adbapi
from twisted.web.resource import Resource from twisted.web.resource import Resource
from twisted.web.static import File from twisted.web.static import File
@ -189,10 +190,10 @@ class SynapseHomeServer(HomeServer):
logger.info("Synapse now listening on port %d", unsecure_port) logger.info("Synapse now listening on port %d", unsecure_port)
def setup(): def setup(config_options, should_run=True):
config = HomeServerConfig.load_config( config = HomeServerConfig.load_config(
"Synapse Homeserver", "Synapse Homeserver",
sys.argv[1:], config_options,
generate_section="Homeserver" generate_section="Homeserver"
) )
@ -254,6 +255,9 @@ def setup():
bind_port = None bind_port = None
hs.start_listening(bind_port, config.unsecure_port) hs.start_listening(bind_port, config.unsecure_port)
if not should_run:
return
if config.daemonize: if config.daemonize:
print config.pid_file print config.pid_file
daemon = Daemonize( daemon = Daemonize(
@ -270,6 +274,17 @@ def setup():
reactor.run() reactor.run()
class SynapseService(service.Service):
def __init__(self, config):
self.config = config
def startService(self):
setup(self.config, should_run=False)
def stopService(self):
return self._port.stopListening()
def run(): def run():
with LoggingContext("run"): with LoggingContext("run"):
reactor.run() reactor.run()
@ -277,7 +292,7 @@ def run():
def main(): def main():
with LoggingContext("main"): with LoggingContext("main"):
setup() setup(sys.argv[1:])
if __name__ == '__main__': if __name__ == '__main__':

View file

@ -95,6 +95,7 @@ class SQLBaseStore(object):
current_context.copy_to(context) current_context.copy_to(context)
start = time.time() * 1000 start = time.time() * 1000
txn_id = SQLBaseStore._TXN_ID txn_id = SQLBaseStore._TXN_ID
SQLBaseStore._TXN_ID += 1
# We don't really need these to be unique, so lets stop it from # We don't really need these to be unique, so lets stop it from
# growing really large. # growing really large.