This repository was archived by the owner on Sep 24, 2020. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathexample.py
More file actions
57 lines (37 loc) · 1.32 KB
/
example.py
File metadata and controls
57 lines (37 loc) · 1.32 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
# -*- coding: utf-8 -*-
import logging
import gevent
from gtorpc import RPCServer, RPClient
if __name__ == '__main__':
log_format = '%(asctime)s %(filename)s[line:%(lineno)d] [%(levelname)s] %(message)s'
logging.basicConfig(level=logging.INFO, format=log_format)
logger = logging.getLogger(__name__)
address = ('127.0.0.1', 5000)
def test_server():
server = RPCServer(address)
@server.service.route()
def sum(x, y):
return x + y
@server.service.route()
def ping_node1():
return server.call_node('node1', 'ping')
server.start()
def test_node1():
c = RPClient(address)
@c.service.route()
def ping():
return 'pong from node1'
logger.info('node1->register: %s' % c.register('node1'))
def test_node2():
c = RPClient(address)
@c.service.route()
def ping():
return 'pong'
logger.info("node2->register: %s " % c.register('node2'))
logger.info("node2->sum: %s " % c.call('sum', 11, 22))
logger.info("node2->call_node: %s " % c.call('call_node', "node1", "ping"))
logger.info("node2->ping_node1: %s " % c.call('ping_node1'))
gevent.spawn(test_server)
gevent.spawn(test_node1)
gevent.spawn(test_node2)
gevent.wait()