parent
ea41314e0b
commit
5993db080c
@ -0,0 +1,22 @@ |
|||||||
|
import sys |
||||||
|
|
||||||
|
from thrift.server.TNonblockingServer import TNonblockingServer |
||||||
|
from thrift.transport import TSocket |
||||||
|
|
||||||
|
sys.path.append('/root/PixivSearch') |
||||||
|
from PixivSearch.thrift.task import TSDM |
||||||
|
from PixivSearch.thrift.task.TSDM import Iface |
||||||
|
|
||||||
|
|
||||||
|
class Server(Iface): |
||||||
|
def qiandao(self): |
||||||
|
return False |
||||||
|
|
||||||
|
def word(self): |
||||||
|
return True |
||||||
|
|
||||||
|
if __name__ == '__main__': |
||||||
|
socket = TSocket.TServerSocket(port=2233) |
||||||
|
processor = TSDM.Processor(Server()) |
||||||
|
server = TNonblockingServer(processor, socket) |
||||||
|
server.serve() |
@ -0,0 +1,124 @@ |
|||||||
|
#!/usr/bin/env python |
||||||
|
# |
||||||
|
# Autogenerated by Thrift Compiler (0.11.0) |
||||||
|
# |
||||||
|
# DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING |
||||||
|
# |
||||||
|
# options string: py |
||||||
|
# |
||||||
|
|
||||||
|
import sys |
||||||
|
import pprint |
||||||
|
if sys.version_info[0] > 2: |
||||||
|
from urllib.parse import urlparse |
||||||
|
else: |
||||||
|
from urlparse import urlparse |
||||||
|
from thrift.transport import TTransport, TSocket, TSSLSocket, THttpClient |
||||||
|
from thrift.protocol.TBinaryProtocol import TBinaryProtocol |
||||||
|
|
||||||
|
from core.thrift.task import TSDM |
||||||
|
from core.thrift.task.ttypes import * |
||||||
|
|
||||||
|
if len(sys.argv) <= 1 or sys.argv[1] == '--help': |
||||||
|
print('') |
||||||
|
print('Usage: ' + sys.argv[0] + ' [-h host[:port]] [-u url] [-f[ramed]] [-s[sl]] [-novalidate] [-ca_certs certs] [-keyfile keyfile] [-certfile certfile] function [arg1 [arg2...]]') |
||||||
|
print('') |
||||||
|
print('Functions:') |
||||||
|
print(' bool qiandao()') |
||||||
|
print(' bool word()') |
||||||
|
print('') |
||||||
|
sys.exit(0) |
||||||
|
|
||||||
|
pp = pprint.PrettyPrinter(indent=2) |
||||||
|
host = 'localhost' |
||||||
|
port = 9090 |
||||||
|
uri = '' |
||||||
|
framed = False |
||||||
|
ssl = False |
||||||
|
validate = True |
||||||
|
ca_certs = None |
||||||
|
keyfile = None |
||||||
|
certfile = None |
||||||
|
http = False |
||||||
|
argi = 1 |
||||||
|
|
||||||
|
if sys.argv[argi] == '-h': |
||||||
|
parts = sys.argv[argi + 1].split(':') |
||||||
|
host = parts[0] |
||||||
|
if len(parts) > 1: |
||||||
|
port = int(parts[1]) |
||||||
|
argi += 2 |
||||||
|
|
||||||
|
if sys.argv[argi] == '-u': |
||||||
|
url = urlparse(sys.argv[argi + 1]) |
||||||
|
parts = url[1].split(':') |
||||||
|
host = parts[0] |
||||||
|
if len(parts) > 1: |
||||||
|
port = int(parts[1]) |
||||||
|
else: |
||||||
|
port = 80 |
||||||
|
uri = url[2] |
||||||
|
if url[4]: |
||||||
|
uri += '?%s' % url[4] |
||||||
|
http = True |
||||||
|
argi += 2 |
||||||
|
|
||||||
|
if sys.argv[argi] == '-f' or sys.argv[argi] == '-framed': |
||||||
|
framed = True |
||||||
|
argi += 1 |
||||||
|
|
||||||
|
if sys.argv[argi] == '-s' or sys.argv[argi] == '-ssl': |
||||||
|
ssl = True |
||||||
|
argi += 1 |
||||||
|
|
||||||
|
if sys.argv[argi] == '-novalidate': |
||||||
|
validate = False |
||||||
|
argi += 1 |
||||||
|
|
||||||
|
if sys.argv[argi] == '-ca_certs': |
||||||
|
ca_certs = sys.argv[argi+1] |
||||||
|
argi += 2 |
||||||
|
|
||||||
|
if sys.argv[argi] == '-keyfile': |
||||||
|
keyfile = sys.argv[argi+1] |
||||||
|
argi += 2 |
||||||
|
|
||||||
|
if sys.argv[argi] == '-certfile': |
||||||
|
certfile = sys.argv[argi+1] |
||||||
|
argi += 2 |
||||||
|
|
||||||
|
cmd = sys.argv[argi] |
||||||
|
args = sys.argv[argi + 1:] |
||||||
|
|
||||||
|
if http: |
||||||
|
transport = THttpClient.THttpClient(host, port, uri) |
||||||
|
else: |
||||||
|
if ssl: |
||||||
|
socket = TSSLSocket.TSSLSocket(host, port, validate=validate, ca_certs=ca_certs, keyfile=keyfile, certfile=certfile) |
||||||
|
else: |
||||||
|
socket = TSocket.TSocket(host, port) |
||||||
|
if framed: |
||||||
|
transport = TTransport.TFramedTransport(socket) |
||||||
|
else: |
||||||
|
transport = TTransport.TBufferedTransport(socket) |
||||||
|
protocol = TBinaryProtocol(transport) |
||||||
|
client = TSDM.Client(protocol) |
||||||
|
transport.open() |
||||||
|
|
||||||
|
if cmd == 'qiandao': |
||||||
|
if len(args) != 0: |
||||||
|
print('qiandao requires 0 args') |
||||||
|
sys.exit(1) |
||||||
|
pp.pprint(client.qiandao()) |
||||||
|
|
||||||
|
elif cmd == 'word': |
||||||
|
if len(args) != 0: |
||||||
|
print('word requires 0 args') |
||||||
|
sys.exit(1) |
||||||
|
pp.pprint(client.word()) |
||||||
|
|
||||||
|
else: |
||||||
|
print('Unrecognized method %s' % cmd) |
||||||
|
sys.exit(1) |
||||||
|
|
||||||
|
transport.close() |
@ -0,0 +1,366 @@ |
|||||||
|
# |
||||||
|
# Autogenerated by Thrift Compiler (0.11.0) |
||||||
|
# |
||||||
|
# DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING |
||||||
|
# |
||||||
|
# options string: py |
||||||
|
# |
||||||
|
|
||||||
|
from thrift.Thrift import TType, TMessageType, TFrozenDict, TException, TApplicationException |
||||||
|
from thrift.protocol.TProtocol import TProtocolException |
||||||
|
from thrift.TRecursive import fix_spec |
||||||
|
|
||||||
|
import sys |
||||||
|
import logging |
||||||
|
from .ttypes import * |
||||||
|
from thrift.Thrift import TProcessor |
||||||
|
from thrift.transport import TTransport |
||||||
|
all_structs = [] |
||||||
|
|
||||||
|
|
||||||
|
class Iface(object): |
||||||
|
def qiandao(self): |
||||||
|
pass |
||||||
|
|
||||||
|
def word(self): |
||||||
|
pass |
||||||
|
|
||||||
|
|
||||||
|
class Client(Iface): |
||||||
|
def __init__(self, iprot, oprot=None): |
||||||
|
self._iprot = self._oprot = iprot |
||||||
|
if oprot is not None: |
||||||
|
self._oprot = oprot |
||||||
|
self._seqid = 0 |
||||||
|
|
||||||
|
def qiandao(self): |
||||||
|
self.send_qiandao() |
||||||
|
return self.recv_qiandao() |
||||||
|
|
||||||
|
def send_qiandao(self): |
||||||
|
self._oprot.writeMessageBegin('qiandao', TMessageType.CALL, self._seqid) |
||||||
|
args = qiandao_args() |
||||||
|
args.write(self._oprot) |
||||||
|
self._oprot.writeMessageEnd() |
||||||
|
self._oprot.trans.flush() |
||||||
|
|
||||||
|
def recv_qiandao(self): |
||||||
|
iprot = self._iprot |
||||||
|
(fname, mtype, rseqid) = iprot.readMessageBegin() |
||||||
|
if mtype == TMessageType.EXCEPTION: |
||||||
|
x = TApplicationException() |
||||||
|
x.read(iprot) |
||||||
|
iprot.readMessageEnd() |
||||||
|
raise x |
||||||
|
result = qiandao_result() |
||||||
|
result.read(iprot) |
||||||
|
iprot.readMessageEnd() |
||||||
|
if result.success is not None: |
||||||
|
return result.success |
||||||
|
raise TApplicationException(TApplicationException.MISSING_RESULT, "qiandao failed: unknown result") |
||||||
|
|
||||||
|
def word(self): |
||||||
|
self.send_word() |
||||||
|
return self.recv_word() |
||||||
|
|
||||||
|
def send_word(self): |
||||||
|
self._oprot.writeMessageBegin('word', TMessageType.CALL, self._seqid) |
||||||
|
args = word_args() |
||||||
|
args.write(self._oprot) |
||||||
|
self._oprot.writeMessageEnd() |
||||||
|
self._oprot.trans.flush() |
||||||
|
|
||||||
|
def recv_word(self): |
||||||
|
iprot = self._iprot |
||||||
|
(fname, mtype, rseqid) = iprot.readMessageBegin() |
||||||
|
if mtype == TMessageType.EXCEPTION: |
||||||
|
x = TApplicationException() |
||||||
|
x.read(iprot) |
||||||
|
iprot.readMessageEnd() |
||||||
|
raise x |
||||||
|
result = word_result() |
||||||
|
result.read(iprot) |
||||||
|
iprot.readMessageEnd() |
||||||
|
if result.success is not None: |
||||||
|
return result.success |
||||||
|
raise TApplicationException(TApplicationException.MISSING_RESULT, "word failed: unknown result") |
||||||
|
|
||||||
|
|
||||||
|
class Processor(Iface, TProcessor): |
||||||
|
def __init__(self, handler): |
||||||
|
self._handler = handler |
||||||
|
self._processMap = {} |
||||||
|
self._processMap["qiandao"] = Processor.process_qiandao |
||||||
|
self._processMap["word"] = Processor.process_word |
||||||
|
|
||||||
|
def process(self, iprot, oprot): |
||||||
|
(name, type, seqid) = iprot.readMessageBegin() |
||||||
|
if name not in self._processMap: |
||||||
|
iprot.skip(TType.STRUCT) |
||||||
|
iprot.readMessageEnd() |
||||||
|
x = TApplicationException(TApplicationException.UNKNOWN_METHOD, 'Unknown function %s' % (name)) |
||||||
|
oprot.writeMessageBegin(name, TMessageType.EXCEPTION, seqid) |
||||||
|
x.write(oprot) |
||||||
|
oprot.writeMessageEnd() |
||||||
|
oprot.trans.flush() |
||||||
|
return |
||||||
|
else: |
||||||
|
self._processMap[name](self, seqid, iprot, oprot) |
||||||
|
return True |
||||||
|
|
||||||
|
def process_qiandao(self, seqid, iprot, oprot): |
||||||
|
args = qiandao_args() |
||||||
|
args.read(iprot) |
||||||
|
iprot.readMessageEnd() |
||||||
|
result = qiandao_result() |
||||||
|
try: |
||||||
|
result.success = self._handler.qiandao() |
||||||
|
msg_type = TMessageType.REPLY |
||||||
|
except TTransport.TTransportException: |
||||||
|
raise |
||||||
|
except TApplicationException as ex: |
||||||
|
logging.exception('TApplication exception in handler') |
||||||
|
msg_type = TMessageType.EXCEPTION |
||||||
|
result = ex |
||||||
|
except Exception: |
||||||
|
logging.exception('Unexpected exception in handler') |
||||||
|
msg_type = TMessageType.EXCEPTION |
||||||
|
result = TApplicationException(TApplicationException.INTERNAL_ERROR, 'Internal error') |
||||||
|
oprot.writeMessageBegin("qiandao", msg_type, seqid) |
||||||
|
result.write(oprot) |
||||||
|
oprot.writeMessageEnd() |
||||||
|
oprot.trans.flush() |
||||||
|
|
||||||
|
def process_word(self, seqid, iprot, oprot): |
||||||
|
args = word_args() |
||||||
|
args.read(iprot) |
||||||
|
iprot.readMessageEnd() |
||||||
|
result = word_result() |
||||||
|
try: |
||||||
|
result.success = self._handler.word() |
||||||
|
msg_type = TMessageType.REPLY |
||||||
|
except TTransport.TTransportException: |
||||||
|
raise |
||||||
|
except TApplicationException as ex: |
||||||
|
logging.exception('TApplication exception in handler') |
||||||
|
msg_type = TMessageType.EXCEPTION |
||||||
|
result = ex |
||||||
|
except Exception: |
||||||
|
logging.exception('Unexpected exception in handler') |
||||||
|
msg_type = TMessageType.EXCEPTION |
||||||
|
result = TApplicationException(TApplicationException.INTERNAL_ERROR, 'Internal error') |
||||||
|
oprot.writeMessageBegin("word", msg_type, seqid) |
||||||
|
result.write(oprot) |
||||||
|
oprot.writeMessageEnd() |
||||||
|
oprot.trans.flush() |
||||||
|
|
||||||
|
# HELPER FUNCTIONS AND STRUCTURES |
||||||
|
|
||||||
|
|
||||||
|
class qiandao_args(object): |
||||||
|
|
||||||
|
|
||||||
|
def read(self, iprot): |
||||||
|
if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: |
||||||
|
iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) |
||||||
|
return |
||||||
|
iprot.readStructBegin() |
||||||
|
while True: |
||||||
|
(fname, ftype, fid) = iprot.readFieldBegin() |
||||||
|
if ftype == TType.STOP: |
||||||
|
break |
||||||
|
else: |
||||||
|
iprot.skip(ftype) |
||||||
|
iprot.readFieldEnd() |
||||||
|
iprot.readStructEnd() |
||||||
|
|
||||||
|
def write(self, oprot): |
||||||
|
if oprot._fast_encode is not None and self.thrift_spec is not None: |
||||||
|
oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) |
||||||
|
return |
||||||
|
oprot.writeStructBegin('qiandao_args') |
||||||
|
oprot.writeFieldStop() |
||||||
|
oprot.writeStructEnd() |
||||||
|
|
||||||
|
def validate(self): |
||||||
|
return |
||||||
|
|
||||||
|
def __repr__(self): |
||||||
|
L = ['%s=%r' % (key, value) |
||||||
|
for key, value in self.__dict__.items()] |
||||||
|
return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) |
||||||
|
|
||||||
|
def __eq__(self, other): |
||||||
|
return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ |
||||||
|
|
||||||
|
def __ne__(self, other): |
||||||
|
return not (self == other) |
||||||
|
all_structs.append(qiandao_args) |
||||||
|
qiandao_args.thrift_spec = ( |
||||||
|
) |
||||||
|
|
||||||
|
|
||||||
|
class qiandao_result(object): |
||||||
|
""" |
||||||
|
Attributes: |
||||||
|
- success |
||||||
|
""" |
||||||
|
|
||||||
|
|
||||||
|
def __init__(self, success=None,): |
||||||
|
self.success = success |
||||||
|
|
||||||
|
def read(self, iprot): |
||||||
|
if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: |
||||||
|
iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) |
||||||
|
return |
||||||
|
iprot.readStructBegin() |
||||||
|
while True: |
||||||
|
(fname, ftype, fid) = iprot.readFieldBegin() |
||||||
|
if ftype == TType.STOP: |
||||||
|
break |
||||||
|
if fid == 0: |
||||||
|
if ftype == TType.BOOL: |
||||||
|
self.success = iprot.readBool() |
||||||
|
else: |
||||||
|
iprot.skip(ftype) |
||||||
|
else: |
||||||
|
iprot.skip(ftype) |
||||||
|
iprot.readFieldEnd() |
||||||
|
iprot.readStructEnd() |
||||||
|
|
||||||
|
def write(self, oprot): |
||||||
|
if oprot._fast_encode is not None and self.thrift_spec is not None: |
||||||
|
oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) |
||||||
|
return |
||||||
|
oprot.writeStructBegin('qiandao_result') |
||||||
|
if self.success is not None: |
||||||
|
oprot.writeFieldBegin('success', TType.BOOL, 0) |
||||||
|
oprot.writeBool(self.success) |
||||||
|
oprot.writeFieldEnd() |
||||||
|
oprot.writeFieldStop() |
||||||
|
oprot.writeStructEnd() |
||||||
|
|
||||||
|
def validate(self): |
||||||
|
return |
||||||
|
|
||||||
|
def __repr__(self): |
||||||
|
L = ['%s=%r' % (key, value) |
||||||
|
for key, value in self.__dict__.items()] |
||||||
|
return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) |
||||||
|
|
||||||
|
def __eq__(self, other): |
||||||
|
return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ |
||||||
|
|
||||||
|
def __ne__(self, other): |
||||||
|
return not (self == other) |
||||||
|
all_structs.append(qiandao_result) |
||||||
|
qiandao_result.thrift_spec = ( |
||||||
|
(0, TType.BOOL, 'success', None, None, ), # 0 |
||||||
|
) |
||||||
|
|
||||||
|
|
||||||
|
class word_args(object): |
||||||
|
|
||||||
|
|
||||||
|
def read(self, iprot): |
||||||
|
if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: |
||||||
|
iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) |
||||||
|
return |
||||||
|
iprot.readStructBegin() |
||||||
|
while True: |
||||||
|
(fname, ftype, fid) = iprot.readFieldBegin() |
||||||
|
if ftype == TType.STOP: |
||||||
|
break |
||||||
|
else: |
||||||
|
iprot.skip(ftype) |
||||||
|
iprot.readFieldEnd() |
||||||
|
iprot.readStructEnd() |
||||||
|
|
||||||
|
def write(self, oprot): |
||||||
|
if oprot._fast_encode is not None and self.thrift_spec is not None: |
||||||
|
oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) |
||||||
|
return |
||||||
|
oprot.writeStructBegin('word_args') |
||||||
|
oprot.writeFieldStop() |
||||||
|
oprot.writeStructEnd() |
||||||
|
|
||||||
|
def validate(self): |
||||||
|
return |
||||||
|
|
||||||
|
def __repr__(self): |
||||||
|
L = ['%s=%r' % (key, value) |
||||||
|
for key, value in self.__dict__.items()] |
||||||
|
return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) |
||||||
|
|
||||||
|
def __eq__(self, other): |
||||||
|
return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ |
||||||
|
|
||||||
|
def __ne__(self, other): |
||||||
|
return not (self == other) |
||||||
|
all_structs.append(word_args) |
||||||
|
word_args.thrift_spec = ( |
||||||
|
) |
||||||
|
|
||||||
|
|
||||||
|
class word_result(object): |
||||||
|
""" |
||||||
|
Attributes: |
||||||
|
- success |
||||||
|
""" |
||||||
|
|
||||||
|
|
||||||
|
def __init__(self, success=None,): |
||||||
|
self.success = success |
||||||
|
|
||||||
|
def read(self, iprot): |
||||||
|
if iprot._fast_decode is not None and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None: |
||||||
|
iprot._fast_decode(self, iprot, [self.__class__, self.thrift_spec]) |
||||||
|
return |
||||||
|
iprot.readStructBegin() |
||||||
|
while True: |
||||||
|
(fname, ftype, fid) = iprot.readFieldBegin() |
||||||
|
if ftype == TType.STOP: |
||||||
|
break |
||||||
|
if fid == 0: |
||||||
|
if ftype == TType.BOOL: |
||||||
|
self.success = iprot.readBool() |
||||||
|
else: |
||||||
|
iprot.skip(ftype) |
||||||
|
else: |
||||||
|
iprot.skip(ftype) |
||||||
|
iprot.readFieldEnd() |
||||||
|
iprot.readStructEnd() |
||||||
|
|
||||||
|
def write(self, oprot): |
||||||
|
if oprot._fast_encode is not None and self.thrift_spec is not None: |
||||||
|
oprot.trans.write(oprot._fast_encode(self, [self.__class__, self.thrift_spec])) |
||||||
|
return |
||||||
|
oprot.writeStructBegin('word_result') |
||||||
|
if self.success is not None: |
||||||
|
oprot.writeFieldBegin('success', TType.BOOL, 0) |
||||||
|
oprot.writeBool(self.success) |
||||||
|
oprot.writeFieldEnd() |
||||||
|
oprot.writeFieldStop() |
||||||
|
oprot.writeStructEnd() |
||||||
|
|
||||||
|
def validate(self): |
||||||
|
return |
||||||
|
|
||||||
|
def __repr__(self): |
||||||
|
L = ['%s=%r' % (key, value) |
||||||
|
for key, value in self.__dict__.items()] |
||||||
|
return '%s(%s)' % (self.__class__.__name__, ', '.join(L)) |
||||||
|
|
||||||
|
def __eq__(self, other): |
||||||
|
return isinstance(other, self.__class__) and self.__dict__ == other.__dict__ |
||||||
|
|
||||||
|
def __ne__(self, other): |
||||||
|
return not (self == other) |
||||||
|
all_structs.append(word_result) |
||||||
|
word_result.thrift_spec = ( |
||||||
|
(0, TType.BOOL, 'success', None, None, ), # 0 |
||||||
|
) |
||||||
|
fix_spec(all_structs) |
||||||
|
del all_structs |
||||||
|
|
@ -0,0 +1 @@ |
|||||||
|
__all__ = ['ttypes', 'constants', 'TSDM'] |
@ -0,0 +1,14 @@ |
|||||||
|
# |
||||||
|
# Autogenerated by Thrift Compiler (0.11.0) |
||||||
|
# |
||||||
|
# DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING |
||||||
|
# |
||||||
|
# options string: py |
||||||
|
# |
||||||
|
|
||||||
|
from thrift.Thrift import TType, TMessageType, TFrozenDict, TException, TApplicationException |
||||||
|
from thrift.protocol.TProtocol import TProtocolException |
||||||
|
from thrift.TRecursive import fix_spec |
||||||
|
|
||||||
|
import sys |
||||||
|
from .ttypes import * |
@ -0,0 +1,18 @@ |
|||||||
|
# |
||||||
|
# Autogenerated by Thrift Compiler (0.11.0) |
||||||
|
# |
||||||
|
# DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING |
||||||
|
# |
||||||
|
# options string: py |
||||||
|
# |
||||||
|
|
||||||
|
from thrift.Thrift import TType, TMessageType, TFrozenDict, TException, TApplicationException |
||||||
|
from thrift.protocol.TProtocol import TProtocolException |
||||||
|
from thrift.TRecursive import fix_spec |
||||||
|
|
||||||
|
import sys |
||||||
|
|
||||||
|
from thrift.transport import TTransport |
||||||
|
all_structs = [] |
||||||
|
fix_spec(all_structs) |
||||||
|
del all_structs |
Loading…
Reference in new issue