Дмитрий Е. О, с чего бы тут начать… Для начала, нужно переделать базу данных, чтобы сохранять в ней очередь обработки подобных команд. Потом надо сделать миллион проверок на совместимость разных операций с той операцией, которая уже в очереди стоит, сделать кучу сообщений из серии “не буду менять дату, так как уже в очереди стоит операция по добавлению тега на этот файл”, ну и дальше очень длинный список вот такой вот ерунды. Огромный объем переделок, огромное количество возможных конфликтов, которые нужно предусмотреть и сделать какую-то специальную обработку. А потом буду еще и вопросы пользователей, “а почему я делаю Х и ничего не происходит? Я поэтому сделал Х нескольно раз, и у меня он спустя минуту применился несколько раз!! Это ужас, как быть!”
Вы видимо не представляете себе, насколько это не просто - фоновые процессы отложенной обработки. В программе их уже есть достаточно, и до сих пор не все пограничные ситуации обработаны и баги вылазят. Делать еще один конвейер просто из-за того, что кто-то иногда может потенциально захотеть поставить теги на 6 тысяч файлов - и ему не очень хочется подождать окончания операции сразу - на мой взгляд, не стоит овчинка выделки.