thrift-sqs-transport
A transport for Thrift using Amazon’s Simple Queue Service. Its best to use this with a text-based protocol, as SQS rejects data streams from the binary protocols.
The Thrift 0.8 gem doesn’t contain the JsonProtocol. To use that, see my other gem: thrift-json.
Example
struct Message {
1: string subject;
2: string body;
}
service LoggerService {
oneway void send_message(1: Message message);
}
Server Example
# The handler class to respond to service calls.
class LoggerHandler
def ()
puts "I have a message. Here it is: #{.inspect}"
end
end
# Setup the server transport. See the source for the options available.
transport = Thrift::SqsServerTransport.new("my-queue", aws_key, aws_secret, :delete => true)
handler = LoggerHandler.new
processor = LoggerService::Processor.new(handler)
server = Thrift::SimpleServer.new(processor, transport, Thrift::BaseTransportFactory.new, Thrift::JsonProtocolFactory.new)
server.serve
Client Example
transport = Thrift::SqsTransport.new("my-queue", aws_key, aws_secret)
protocol = Thrift::JsonProtocol.new(transport)
= Message.new(subject: "Hello", body: "World!")
logger = LoggerService::Client.new(protocol)
logger.()