在Mac OS X上,我有一个生成JSON对象的进程,以及另一个应该使用它们的间歇进程。 producer 和使用者进程彼此独立。对象的生成频率不会超过每5秒,通常为几百个字节,但有时可能会达到兆字节。对象应先进先出。消费者在生产者生产时可能正在运行,也可能没有运行,并且可能会或可能不会立即读取对象。
我的骨头解决方案是
有没有更简单或更好的方法来做到这一点?
答案 0 :(得分:1)
从Lion开始,这样做的现代方法是使用XPC。不幸的是,没有好的文件记录;有a broad overview in the Daemons and Services guide和a primitive HeaderDoc-generated reference,但介绍它的最佳方式是从last year's WWDC sessions观看有关它的会话。
使用XPC,您不必担心序列号是串行的,必须争夺旋转的磁盘,或者是否有足够的磁盘空间。实际上,您根本不需要生成和解析JSON数据,因为XPC的通信机制是围绕JSON-esque / plist-esque容器和值对象构建的。
答案 1 :(得分:0)
假设您希望消费者看到旧文件,这就是它从一开始就已经完成的方式 - 虽然它可能是令人讨厌的。
有很多高科技的东西看起来更干净 - 但老实说,它们往往会增加复杂性和/或部署基础设施,增加麻烦。你的建议是有效的,而且效果很好,而且编写和维护都很容易。您可能需要某种类型的标记文件来跟踪您正在为崩溃恢复做些什么,但这可能与此有关。
哎呀,大多数人只是在睡觉时进行民意调查5.至少你们都参加了这项活动。
现在,如果失去听众没有产生的事件是可以接受的;和perf是最重要的 - 它可以变得更有趣。 :)