Ну вот наконец-то наш проект и дорос до состояния, когда стали возникать ошибки совместного доступа к ресурсам.
Первой ласточкой стала **IOError **(CRC check failed), которая возникла когда один процесс начал закачивать архив статьи, а другой, подумав что архив уже скачан, принялся его старательно распаковывать.
Как раз для таких случаев в Django есть специальный декоратор: @transaction.commit_on_success (в Django 1.3 его также можно использовать как context manager). Просто добавляем его к функции, и при любом возникшем внутри функции исключении (например IOError), функция будет завершаться, не сохраняя никаких измнений в базу.