Я вот тоже думал, что любой. Написал. Теперь оно обрасло неимоверным количеством костылей, на которые я боюсь даже дышать.В файл-список задач могут писать разные процессы одновременно. Значит его нужно лочить/анлочить. Если какой-то процесс не снял лок, больше задачи не поступают. Значит нужно придумывать какой-то мониторинг для принудительного снятия лока, если процесс, который его установил, упал. Нужно вести какой-то лог, где будет видно, когда какие задачи отработали, а какие - нет (например, из-за того, что не дождались освобождения лока).
Задачи должны исполнятся по очереди. Если одна из задач слишком долго выполняется, нужно понять, повисла она или просто долго выполняется. Если повисла, нужно ее прибить или перезапустить. В очереди могут быть задания, которые должны быть выполнены только после текущего. Если текущая задача виснет, нужно решить, какие последующие задания, которые сейчас находятся в очереди, нужно отменить.
Ко всему вышесказанному надо-бы добавить, что я не уверен, что я уже наступил на все типичные грабли многозадачности и теории очередей. Даже больше, уверен, что новые грабли еще всплывут. Вот и ищу какой-нибудь готовый софт, где об этих граблях уже подумали.