我是一名 Unity 移动游戏开发者。由于 Google Play 计费库迁移,我将应用内购买包管理器更新至 4.12.2,并将最新的外部依赖项管理器也更新至 4.12.2。在
我是一名 Unity 移动游戏开发者。由于 Google Play 结算库迁移,我将应用内购买包管理器更新为 4.12.2,并将外部依赖项管理器也更新为最新版。在 IAPAndroidDependencies 文件中,我可以看到结算客户端 6.2.1。我没有更改任何购买脚本。在我更新了所有提交的脚本后,我仍然收到 Google Play 结算错误的错误消息。我应该怎么做才能解决这个问题?
我更新了统一的应用内购买包。我还更新了 ExternalDependencyManager
首先,我要说的是,我设法通过删除几个相当大但未使用的数据库并从头开始重新运行应用程序来让应用程序运行。 成功了! 不过,正如我下面指出的那样,这更多的是运气而不是智慧。
正如评论者所指出的,我相信文件描述符限制是罪魁祸首——但是,就像灯柱下的醉汉一样,我在光线好的地方寻找钥匙,而不是在实际掉落钥匙的地方寻找钥匙。
今天早上我终于仔细查看了 ArangoDB 启动文件,其中 /lib/systemd/system/arangodb3.service
揭示了以下内容:
# system limits
LimitNOFILE=131072
LimitNPROC=131072
TasksMax=131072
在我昏暗的小脑袋里 产生了一点 啊哈!
这让我查看了在删除多余的数据库之前保存的备份:
myobfuscatedhost:/ssd1/arangodb3/engine-rocksdb# ls -1 | grep sst | wc -l
130878
你瞧,这些数字相当接近。
看起来,通过使用 lsof
它,目录中的每个文件确实 engine-rocksdb
都是打开的。
因此,提高上述限制应该可以解决问题。
我说 应该, 因为我还没有完全检验我的假设,因为正如我在开头段落中提到的那样,我通过删除多余的数据集并留下足够的空间来完成手头的任务,暂时解决了这个问题。
我会增加限制 /lib/systemd/system/arangodb3.service
,祈祷并希望获得最好的结果。
感谢所有最终把答案灌输到我头脑中的人。