我们首先建一个python的项目,项目名为message-thrift-python-service,接着在建立一个thrift文件夹用于存放thrift文件。最后在建一个
message.thrift 内容如下
namespace go com.apple.thrift.message
namespace py message.api
service MessageService {
bool sendMobileMessage(
1:string mobile,
2: string message
);
bool sendEmailMessage(
1:string email,
2: string message
);
}
这时我们进入对应的项目目录执行
C:\Users\apple\PycharmProjects\message-thrift-python-service\thrift>thrift --gen py -out ../ message.thrift
最终生成了,这样的目录结构
v_thrift.png
ok,现在呢我们在message下面建一个名为message_service.py的文件用于书写我们的接口。
下面给大家贴出message_service.py文件的代码
from message.api import MessageService
from thrift.transport import TSocket
from thrift.transport import TTransport
from thrift.protocol import TBinaryProtocol
from thrift.server import TServer
class MessageServiceHandler:
def sendMobileMessage(self, mobile, message):
print("sendMobileMessage")
return True
def sendEmailMessage(self, email, message):
print("sendEmailMessage")
return True
if __name__ == "__main__":
handler = MessageServiceHandler()
processor = MessageService.Processor(handler)
# 定义监听的端口
transport = TSocket.TServerSocket("localhost", "8080")
# 定义传输的方式
tfactory = TTransport.TFramedTransportFactory()
# 定义传输协议(二进制的传输协议)
pfactory = TBinaryProtocol.TBinaryProtocolFactory()
server = TServer.TSimpleServer(processor, transport, tfactory, pfactory)
print("python thrift server start")
server.serve()
print("python thrift server exit")
ok,我们先运行一把,出现了python thrift server start这说明我们服务运行起来了。
现在我们就专心的把sendMobileMessage sendEmailMessage这两个接口实现掉就可以了
我们在写发邮件功能之前需要先引入一个包
import smtplib
from email.mime.text import MIMEText
from email.header import Header
sender = ''
class MessageServiceHandler:
def sendMobileMessage(self, mobile, message):
print("sendMobileMessage")
return True
def sendEmailMessage(self, email, message):
print("sendEmailMessage, email:" + email+", message:"+message)
messageObj = MIMEText(message, "plain", "utf-8")
messageObj['From'] =
return True
接下来我们来生成Go代码,
thrift --gen go -out ./../../message-thrift-service-api/ message.thrift
网友评论