#!/usr/bin/env python
# This server demonstrates Thrift's connection and "oneway" asynchronous jobs
# showCurrentTimestamp : which returns current time stamp from server
# asynchronousJob() : prints something, waits 10 secs and print another string
#
# Osman Yuksel < yuxel {{|AT|}} sonsuzdongu |-| com >
port = 9090
import sys
# your gen-py dir
sys.path.append('../gen-py')
import time
# Example files
from Example import *
from Example.ttypes import *
# Thrift files
from thrift.transport import TSocket
from thrift.transport import TTransport
from thrift.protocol import TBinaryProtocol
from thrift.server import TServer
# Server implementation
class ExampleHandler:
# return current time stamp
def showCurrentTimestamp(self):
timeStamp = time.time()
return str(timeStamp)
# print something to string, wait 10 secs, than print something again
def asynchronousJob(self):
print 'Assume that this work takes 10 seconds'
time.sleep(10)
print 'Job finished, but client didn\'t wait for 10 seconds'
# set handler to our implementation
handler = ExampleHandler()
processor = Example.Processor(handler)
transport = TSocket.TServerSocket(port)
tfactory = TTransport.TBufferedTransportFactory()
pfactory = TBinaryProtocol.TBinaryProtocolFactory()
# set server
server = TServer.TThreadedServer(processor, transport, tfactory, pfactory)
print 'Starting server'
server.serve()