xingshuo / actor

lua actor model

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

基于lua实现的一种Actor模型

应用场景

    游戏业务逻辑单元更细粒度的一种抽象方式: 如一个玩家、 一个公会、 一支队伍...

设计思路

    每个actor一个消息队列, 每个actor的所有消息在一个独立的coroutine中处理.
    rpc调用(call)时, 整个actor消息处理挂起, 中间有其他actor send过来的消息会依次写入消息队列, 直到当前rpc完成后再依次处理后续消息, 所以actor级别不会出现伪并发状态重入的问题. 
    但一旦actor间rpc调用链形成环, 会导致对应actor消息永久阻塞(死锁), 因此增加了消息回射接口(actor:echo)来解决这个问题

示例

    内容: 2个玩家申请加入工会, 工会发起对玩家道具扣除
    运行: lua test.lua

About

lua actor model


Languages

Language:Lua 100.0%