Антивирус и конфликт доступа к файлам: хорошие практики программирования? - PullRequest
4 голосов
/ 23 сентября 2008

Иногда мы экспериментируем с ошибками «отказано в доступе» из-за антивируса , который обрабатывает файл в то же время, когда наша программа хочет записать / переименовать / скопировать его.

Это случается редко, но меня расстраивает, потому что я не нахожу хороший способ справиться: технически наш ответ состоит в том, чтобы изменить наш исходный код для реализации механизма retry ... но мы не удовлетворены.. . немного пахнет ... мы не можем позволить нашим клиентам сказать: «Пожалуйста, отключите антивирус, пусть наше программное обеспечение работает правильно» ...

Так что, если вы уже экспериментировали с такими проблемами, пожалуйста, дайте мне знать, как вы справились.

Спасибо!

1 Ответ

3 голосов
/ 23 сентября 2008

На самом деле очень мало места для того, чтобы сказать "выключите avs". Это просто не сработает во многих офисах, поэтому мы сделали именно то, что вы сказали: создайте очередь повторов.

Заблокированные файлы добавляются в очередь. Когда исходная операция заканчивается, мы делаем паузу на 1 секунду и последовательно просматриваем очередь. Файлы, которые потерпели неудачу во второй раз, добавляются во вторую очередь, а после завершения первой мы ждем 3 секунды и просматриваем вторую.

Сообщаются файлы, которые выходят из строя во второй очереди (третья попытка).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...