如何为golang守护进程实现CLI客户端?

时间:2014-11-09 15:18:30

标签: algorithm design-patterns go

我有一个带有http api的linux守护进程,我在golang上写过。在开始时,他初始化变量,并且在我问api的时候 - 他就是答案。 Init很难操作:读取很多配置,添加很多对象等。

我的问题是,如果主进程死我不能使用http api;)。我的代码并不完美,有时候他会堆叠或死掉,或者用户禁用linux服务。但我仍然需要一些低级功能才能工作。

如果我尝试在cli上实现web api的所有功能:他的开始对于系统来说将是非常缓慢和困难的。但是如果实现将在CLI和&之间分开,我会遇到更多问题。 web api:不一致。例如:我可以在web api create&&在CLI内同时 - 删除所有。我必须实现锁定功能来防止这种情况。 (我认为在这方面编写代码并不好)

我不使用数据库服务器(并且不需要)。也许我可以存储内部文件或使用一些共享内存?

我的问题是如何在golang守护程序和CLI-client之间共享对象的数据?

1 个答案:

答案 0 :(得分:1)

Go有一个内置的RPC system,可以在Go进程之间轻松进行通信。您还可以查看0mq或使用D-Bus