【发布时间】:2014-11-09 15:18:29
【问题描述】:
我有一个带有 http api 的 linux 守护程序,它是我在 golang 上编写的。在开始时,他初始化变量,并且一直在我问 api 时——他就是答案。初始化是硬操作:读取许多配置,添加许多对象等。
我的问题是,如果主进程死了,我就不能使用 http api ;)。我的代码并不完美,有时他会堆叠或死亡,或者用户禁用 linux 服务。但我仍然需要一些低级功能才能工作。
如果我尝试在 cli 中实现 web api 的所有功能:他的启动将非常缓慢并且对系统来说很难。但是如果实现将在 CLI 和 web api 之间分离,我会遇到更多问题:inconsistent. 例如:我可以在 CLI 中同时在 web api 中创建 && - 全部删除。我必须实现锁定功能来防止这种情况。 (我觉得这边写代码不好)
我不使用数据库服务器(也不需要)。也许我可以存储内部文件或使用一些共享内存?
我的问题是如何在 golang 守护程序和 CLI 客户端之间共享对象的数据?
【问题讨论】:
-
不要那样做。要么让 CLI 应用程序与你的 API 对话,要么让它们都使用一个公共数据库。您可以为此创建各种 IPC 同步,但您走错了路。
-
我想与不是来自网络的守护进程 api 交谈。但我不知道怎么做。
标签: algorithm design-patterns go