Lua 脚本尝试使用 Orleans.Clustering.Redis

问题描述

尝试使用 Redis 集群配置 Orleans。使用 Orleans.Redis.Clustering。它似乎没有连接问题,但每次尝试写入时都会出现此错误

我的 Grain 的代码

UserSessionData.State = new UserSessionState()
{
  Field1 = value1,Field2 = value2
};

UserSessionData.State.Field3.Field31 = value3;

await UserSessionData.WriteStateAsync();

我在尝试 WriteStateAsync 时遇到此错误

Exc level 0: StackExchange.Redis.RedisServerException: ERR Error running script (call to f_30448f522420f4d71927d050ddfc4eb8fc65e54a): @user_script:1: @user_script: 1: Lua script attempted to access a non local key in a cluster node
   at Orleans.Persistence.RedisGrainStorage.WriteStateAsync(String grainType,GrainReference grainReference,IGrainState grainState)
   at Orleans.Core.StateStorageBridge`1.WriteStateAsync()

我总是在第一次尝试时遇到此错误,但如果我多次尝试注册状态,它似乎已保存到我的 Redis 节点中。

我在集群模式下使用 redis 时发现了 Lua 脚本命令。但是在 github 的 Orleans.Redis 的示例目录中,与我的代码没有任何区别。可能是 Orleans.Redis 存储库中的错误

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...