Я пытаюсь реализовать простую очередь планирования заданий. Работы не обязательно должны выполняться в том порядке, в котором они поступают, и я хотел бы иметь работы в «отставании», чтобы, если рабочим больше нечего делать; Они могут работать над этими заданиями.
Это слишком просто и выполняется локально, чтобы имело смысл реализовать что-то вроде очереди на основе Celery. Однако я не могу найти ни одной потокобезопасной библиотеки очереди приоритетов для Python, которая была бы дисковой, постоянной и хорошо поддерживаемой.
Я опасаюсь использовать нечасто используемые библиотеки, так как боюсь они не были должным образом протестированы/проверены на условиях гонки.
Я вижу, что люди рекомендуют эти библиотеки, поэтому я уже написал их, чтобы сэкономить время на рекомендациях:< /p>
Queuelib: отмечает все флажки, за исключением того, что это не является потокобезопасным.
Persistent-Queue: отмечает все флажки, за исключением отсутствия приоритетной очереди.
Подозреваю, что я не первый, кто столкнулся с этой проблемой; Поэтому мне было интересно, знает ли кто-нибудь из вас, как реализовать потокобезопасную очередь приоритетов в Python, которую можно запускать локально с локальной базой данных SQLite или другим дисковым хранилищем данных, чтобы она была постоянной?Предпочтительно что-то, что было доказано как потокобезопасное/потокобезопасное, но может быть достаточно большого количества использования и тестирования крайних сценариев.
Подробнее здесь: https://stackoverflow.com/questions/786 ... ary-python