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