HCE Project Python language Distributed Tasks Manager Application, Distributed Crawler Application and client API bindings.  2.0.0-chaika
Hierarchical Cluster Engine Python language binding
ftest_server_connection.py
Go to the documentation of this file.
1 '''
2 Created on Mar 17, 2014
3 
4 @author: igor
5 '''
6 
7 from app.BaseServerManager import BaseServerManager
8 from app.PollerManager import PollerManager
9 from transport.ConnectionBuilderLight import ConnectionBuilderLight
10 from dtm.Constants import EVENT_TYPES
11 from dtm.EventObjects import NewTask
12 import transport.Consts
13 
14 clientConnectName = "testConnect"
15 
16 
18 
19 
20  def __init__(self, pollerManager, totalExpectRequest):
21  super(Server, self).__init__(pollerManager)
22  self.events = list()
23  self.totalExpectRequest = totalExpectRequest
24  self.setEventHandler(EVENT_TYPES.NEW_TASK, self.newTaskHandler)
25 
26 
27  def newTaskHandler(self, event):
28  if event.eventType != EVENT_TYPES.NEW_TASK:
29  raise Exception("get wrong event type " + str(event.eventType))
30 
31  print "get event\t", event.__dict__
32  response = self.eventBuilder.build(EVENT_TYPES.NEW_TASK_RESPONSE, NewTask("response", "2"))
33  self.reply(event, response)
34 
35 
36 if __name__ == "__main__":
37  connectBuilder = ConnectionBuilderLight()
38  pollerManager = PollerManager(connectBuilder.zmq_poller)
39  connect_endpoint = "127.0.0.1:8090"
40  tcp_protocol = True
41 
42  serverConnectAdmin = connectBuilder.build(transport.Consts.SERVER_CONNECT, BaseServerManager.ADMIN_CONNECT_ENDPOINT)
43 
44  clients = list()
45 
46  server = Server(pollerManager, 10)
47  serverConnect = None
48  if not tcp_protocol:
49  serverConnect = connectBuilder.build(transport.Consts.SERVER_CONNECT, connect_endpoint)
50  else:
51  serverConnect = connectBuilder.build(transport.Consts.SERVER_CONNECT, connect_endpoint, transport.Consts.TCP_TYPE)
52 
53  server.addConnection("server", serverConnect)
54  server.start()
55  server.join()
def reply(self, event, reply_event)
wrapper for sending event in reply for event
NewTask event object, defines the Task object fields.
def setEventHandler(self, eventType, handler)
set event handler rewrite the current handler for eventType
This is app base class for management server connection end-points and parallel transport messages pr...
Class hides routines of bulding connection objects.
def __init__(self, pollerManager, totalExpectRequest)