• Есть какой-то механизм, подобный транзакциям бд, только для файловой системы?

    @Masterme
    всё делается через базу. заводите отдельную таблицу заданий, например, заданий удаления файлов с диска. и делаете так

    1. вам нужно сохранить файл blabla.jpg
    1a. заносите в таблицу заданий "удалить blabla.jpg с таймаутом например 1 час"
    1b. создаёте файл blabla.jpg
    2. открываете транзацкию
    3. делаете запись в основную таблицу, где в одном из полей сохраняете ассоциированный файл blabla.jpg (не сам файл, конечно, а его название)
    4. удаляете запись сделанную п. 1а
    5а. если нет ошибок - закрываете транзакцию
    5б. если есть ошибки - откатываете транзакцию

    вторая часть схемы - скрипт, обходящий таблицу заданий и выполняющий задания из неё.
    Ответ написан
    Комментировать