commit f3236fc788ae2cf67e9f9ae1c8681b623dd732f2 Author: Nico Schottelius Date: Fri Oct 26 18:04:46 2018 +0200 Init diff --git a/nameko1.py b/nameko1.py new file mode 100644 index 0000000..2c67142 --- /dev/null +++ b/nameko1.py @@ -0,0 +1,63 @@ +from nameko.events import EventDispatcher, event_handler +from nameko.rpc import rpc + +import json +from nameko.web.handlers import http +from nameko.timer import timer + + + +class ServiceA: + """ Event dispatching service. """ + name = "service_a" + + dispatch = EventDispatcher() + + @rpc + def dispatching_method(self, payload): + self.dispatch("event_type", payload) + + +class ServiceB: + """ Event listening service. """ + name = "service_b" + + @event_handler("service_a", "event_type") + def handle_event(self, payload): + print("service b received:", payload) + + +class HttpService: + name = "http_service" + + @http('GET', '/get/') + def get_method(self, request, value): + return json.dumps({'value': value}) + + @http('POST', '/post') + def do_post(self, request): + return u"received: {}".format(request.get_data(as_text=True)) + + @http('GET,PUT,POST,DELETE', '/multi') + def do_multi(self, request): + return request.method + +class ServiceTimer: + name ="servicetimer" + + + dispatch = EventDispatcher() + + @timer(interval=1) + def ping(self): + # method executed every second + print("pong") + self.dispatch("ping", "pong") + + +class LoggerService: + name = "loggerpoint" + + @event_handler("servicetimer", "ping") + def handle_event(self, payload): + print("timing receive in logger: ", payload)