コード例 #1
0
ファイル: usage.py プロジェクト: totalorder/actress
from scheduler import Scheduler

def consumer(s, pid, producer_pid):
    while 1:
        msg = yield

        if msg is s.sentinel:
            break
        print u"consumer received message: %s" % msg
        s.send(producer_pid, u"hello from %s!" % pid)

def producer(s, pid):
    child_pids = []
    for i in xrange(4):
        child_pids.append(s.spawn(consumer, pid))

    messages = 0
    for child_pid in child_pids:
        s.send(child_pid, u"hello %s?" % child_pid)
        messages += 1

    while messages:
        message = yield
        print u"producer received message: %s" % message
        messages -= 1
    for child_pid in child_pids:
        s.send(child_pid, s.sentinel)

s = Scheduler(pool_size=4)
producer_pid = s.spawn(producer)
s.run()