def listen_forever(self, doneflag=None): """Main event processing loop for RawServer. RawServer listens until the doneFlag is set by some other thread. The doneFlag tells all threads to clean-up and then exit.""" if not doneflag: doneflag = DeferredEvent() assert isinstance(doneflag, DeferredEvent) self.doneflag = doneflag if not self.associated: self.associate_thread() if self.listened: Exception( _("listen_forever() should only be called once per reactor.")) if main_thread == thread.get_ident() and not self.sigint_installed: self.install_sigint_handler() if is_iocpreactor and main_thread == thread.get_ident(): def pulse(): self.add_task(1, pulse) pulse() reactor.callLater(0, self.doneflag.addCallback, self._safestop) self.listened = True reactor.suggestThreadPoolSize(3) if profile: self.prof.enable() if noSignals: reactor.run(installSignalHandlers=False) else: reactor.run() if profile: self.prof.disable() st = Stats(self.prof.getstats()) st.sort() f = open(prof_file_name, 'wb') st.dump(file=f)
def listen_forever(self, doneflag=None): """Main event processing loop for RawServer. RawServer listens until the doneFlag is set by some other thread. The doneFlag tells all threads to clean-up and then exit.""" if not doneflag: doneflag = DeferredEvent() assert isinstance(doneflag, DeferredEvent) self.doneflag = doneflag if not self.associated: self.associate_thread() if self.listened: Exception(_("listen_forever() should only be called once per reactor.")) if main_thread == thread.get_ident() and not self.sigint_installed: self.install_sigint_handler() if is_iocpreactor and main_thread == thread.get_ident(): def pulse(): self.add_task(1, pulse) pulse() reactor.callLater(0, self.doneflag.addCallback, self._safestop) self.listened = True reactor.suggestThreadPoolSize(3) if profile: self.prof.enable() if noSignals: reactor.run(installSignalHandlers=False) else: reactor.run() if profile: self.prof.disable() st = Stats(self.prof.getstats()) st.sort() f = open(prof_file_name, 'wb') st.dump(file=f)
factory = ClientFactory() factory.protocol = PrintingReplicationListener reactor.connectTCP('127.0.0.1', 9000, factory) ## listener 2 (ebrpc) from BTL import twisted_ebrpc, replication from twisted.web import server class Server(twisted_ebrpc.EBRPC): def ebrpc_ping(self, *args): print 'listener got: ping(%s)' % repr(args) assert args == (1002,) return args r = Server() r = replication.EBRPC_ListenerAdaptor(r) reactor.connectTCP('127.0.0.1', 9000, r) ## client from BTL.twisted_ebrpc import AsyncServerProxy df = AsyncServerProxy("http://127.0.0.1:7080").ping(1002) def done(r): print 'client got:', r assert r == [1002] reactor.callLater(0.5, reactor.stop) df.addCallback(done) df.addErrback(done) reactor.run()
injectLogger(log_file="your.log", use_syslog=False, verbose=True) logger = logging.getLogger("myapp") logger.warning("You are awesome") print 'stdout!' print >> sys.stderr, 'stderr!' from twisted.internet import reactor from twisted.python import failure def foo(): reactor.stop() zuul = dana reactor.callLater(0, foo) def test_injectLogger2(): injectLogger(log_file="your.log", verbose=False, capture_output=True) print "hello world" def foo(): reactor.stop() zuul = dana reactor.callLater(0, foo) #test_injectLogger() test_injectLogger2() #reactor.callLater(0, test_rate_limited_logger) reactor.run()