Варианты хранения метаданных о заданиях печати CUPS?
Я пишу систему печати, которая помещает упрощенный интерфейс поверх CUPS. Пользователи помещают задания в одну очередь, система обрабатывает их различными способами (статистика, квоты страниц и т. Д.), А затем предлагает пользователю веб-интерфейс для отправки задания на один из нескольких принтеров.
Поскольку может быть несколько пользовательских киосков, административная станция и т. Д., Мне нужно хранить метаданные задания в том, что может обрабатывать одновременный доступ. (Можете ли вы назвать структуры данных "входящими"?) Несколько вариантов, которые я могу себе представить:
- база данных MySQL: массово излишняя, но, безусловно, стабильная и поддерживаемая
- Файлы метаданных с одновременным доступом обрабатываются вручную: идеально с учетом моих потребностей, но затем мне нужно заново реализовать подмножество атомарности MySQL и, вероятно, сделать это плохо
- записывать в управляющие файлы CUPS, используя предоставленный поточно-безопасный API cupsipp.h
Последний вариант звучит наиболее привлекательно, но есть одна загвоздка: я пишу это на Python, и ни pycups, ни pkipplib, похоже, не имеют никакого способа изменить управляющий файл.
Изменить: я должен уточнить, что pkipplib может генерировать новые запросы IPP, но не дает никакого способа изменить существующий контрольный файл. То есть мне придется вносить свои обновления, отправляя их как новые вакансии.
У кого-нибудь есть идея получше? Совет будет высоко ценится.