CUPS打印作业的元数据存储选项?

0 投票
1 回答
693 浏览
提问于 2025-04-15 19:13

我正在写一个打印系统,这个系统在CUPS的基础上提供了一个简化的界面。用户可以把打印任务放到一个队列里,系统会以不同的方式处理这些任务(比如统计信息、页面配额等),然后给用户一个网页界面,让他们可以把任务发送到多个打印机中的一台。

因为可能会有多个用户终端、一个管理站等,我需要把任务的相关信息存储在一个可以同时被多个地方访问的地方。(数据结构能叫“可重入”吗?)我能想到的几种选择是:

  • 一个MySQL数据库:虽然这个选择有点过于复杂,但肯定是稳定并且有支持的。
  • 元数据文件,手动处理并发访问:这个选择完全符合我的需求,但我得重新实现MySQL的一部分原子性,可能还会做得不好。
  • 使用提供的线程安全的cupsipp.h API写入CUPS控制文件。

最后一个选项听起来最吸引人,但有个问题:我是在用Python写这个,而pycups和pkipplib似乎都没有办法修改控制文件。

补充说明:我应该澄清一下,pkipplib可以生成新的IPP请求,但没有办法修改现有的控制文件。也就是说,我必须通过提交新的任务来进行更新。

有没有人有更好的主意?非常感谢任何建议。

1 个回答

0

你有没有考虑过sqlite或者redis呢?这两种工具都很轻便,启动起来也很简单,特别是当你处理的数据不是特别复杂的时候。

撰写回答