import asyncio
from thespian.actors import *
import time
class EngActor(Actor):
def __init__(self):
self.greeting='hi there'
def receiveMessage(self, message, sender):
print(self.greeting)
self.send(sender, self.greeting )
class KorActor(Actor):
def __init__(self):
self.greeting='안녕하시오'
def receiveMessage(self, message, sender):
time.sleep(1);
print(self.greeting)
self.send(sender, self.greeting )
class HelloAsync:
def __init__(self):
self.greeting = "hi there2"
async def SayHello(self,message):
await asyncio.sleep(1)
print(self.greeting)
#액터방식
def say_hello():
actorSys = ActorSystem()
engActor = actorSys.createActor( EngActor )
korActor = actorSys.createActor( KorActor )
actorSys.tell(korActor, '이보시오~')
actorSys.tell(engActor, 'are you there?')
say_hello();
#코르틴 방식
async def asay_hello():
asyncHello = HelloAsync()
await asyncHello.SayHello('are you there?')
loop = asyncio.get_event_loop()
loop.run_until_complete(asay_hello())
loop.close()
print('============= wait for test ==================')
time.sleep(3);
## Result - 순차적으로 처리된듯 하나~ 동시적으로 처리됨
# 안녕하시오
# hi there