|
Временные файлы и как с ними бороться? | ☑ | ||
---|---|---|---|---|
0
hydro2588
22.03.17
✎
08:49
|
Доброго дня!
Платформа 8.3.9.2033 "Управление торговлей", редакция 10.3 (10.3.40.1) Создаю письмо, программно с вложением. Сообщение = Новый ИнтернетПочтовоеСообщение; Сообщение.Вложения.Добавить(ПолучитьДвоичныеДанные(ФайлВФорматеXLS),"" + ЭлементМассива.Подпись + ".xlsx"); В этот момент в папке user\app\temp создается папка tmp___.tmp с этим вложением в виде набора файлов. Весит эта папка до 50 мегабайт. Писем очень много, папочек очень много, место на диске С быстро заканчивается. Они удаляются когда закрываешь 1с, но место заканчивается быстрее. Вопрос: как удалять эти папочки? Или хотя бы как получить путь к этим временным каталогам. Варианты: Чистить полностью Temp, закрывать 1с через 5 писем не подходят. Заранее спасибо за любую наводку =) |
|||
1
Мимохожий Однако
22.03.17
✎
08:54
|
Добавить жесткий диск, удалять файлы после прочтения или отправки письма
|
|||
2
Fedor-1971
22.03.17
✎
09:12
|
(1) не так. Добавить жесткий диск (выделить раздел) и запихнуть на него temp. Идея в следующем забивается не критичный к работе системы диск/раздел, можешь ему периодически делать харакири
|
|||
3
DrZombi
гуру
22.03.17
✎
09:14
|
(0) Купить HDD
Заставить админа освоить КМД и чистить темпы :) |
|||
4
DrZombi
гуру
22.03.17
✎
09:18
|
+ как вариант отправлять почту с сервера... и проблема места возложится не на клиентское ПК, а на сервер и админов :)
|
|||
5
vde69
22.03.17
✎
09:28
|
при большом количестве файлов в темповой директории (например 10 000) начинаются тормоза, по этому можно создавать каталок по номеру сессии клиента, тогда проблемы не будет (и чистить их будет удобнее)
|
|||
6
hydro2588
22.03.17
✎
09:29
|
(4) Все это происходит на одной машине.
Пытался выполнять Сообщение.Вложения.Очистить() и .Удалить() не помогает. Может есть какая-то процедура в 1с УдалитьВременныеКаталоги(), все перерыл не могу найти. (2) Где в 1с прописывается, где создавать временные файлы? Т.е. по сути что вернут ПолучитьИмяВременногоФайла()? Может этот вариант и подойдет. |
|||
7
hydro2588
22.03.17
✎
09:35
|
(5) Если бы я сам создавал временные я бы их сам и чистил. В данном случае это платформа делает, даже не конфа. В момент Сообщение.Вложение.Добавить() (в отладке это видел собственными глазами) и удаляет она сама, когда 1с закрываешь... но это поздно для меня. Ешё тут подумал может где-то есть ограничения на размер создаваемых временных каталогов? Как в скуле, типа больше этого размера базенку временную не расширять...
|
|||
8
cons74
22.03.17
✎
09:38
|
1) вместо
ПолучитьДвоичныеДанные(ФайлВФорматеXLS),"" + ЭлементМассива.Подпись + ".xlsx" делаешь "ручное" создание файла с нужным именем в нужной папке 2) после отправки письма удаляешь указанный файл через УдалитьФайлы(файл) |
|||
9
1Снеговик
гуру
22.03.17
✎
09:55
|
(0) Папка весит 50мб... закрывать после 5 писем... Автор, у тебя свободного места 250Мб?
Очень много - это сколько? Хоть какие-то конкретные цифры будут? |
|||
10
hydro2588
22.03.17
✎
09:56
|
(8)
Сообщение = Новый ИнтернетПочтовоеСообщение; //получаю имя сам, чтобы туда кинуть файл ФайлВФорматеXLS = ПолучитьИмяВременногоФайла(); //запоминаю, чтобы потом удалить мВременныеФайлы.Добавить(ФайлВФорматеXLS); //сохраняю в файл результат Вложение.Записать(ФайлВФорматеXLS, ТипФайлаТабличногоДокумента.XLSX); //передаю вложение в письмо (в этот момент создается ещё 1 каталог в папке Temp, имя которого я не могу получить) Сообщение.Вложения.Добавить(ФайлВФорматеXLS,"" + ЭлементМассива.Подпись + ".xlsx"); //чистим за собой Для Каждого элВложение Из Сообщение.Вложения Цикл УдалитьФайлы(элВложение.ИмяФайла); КонецЦикла; |
|||
11
hydro2588
22.03.17
✎
09:59
|
(9) Конкретные цифры: писем не знаю сколько, не считал. 14 гигобайт забивается за 2 часа рассылки.
Железо это самый простой вариант, и он повиснет на плечах работодателя, если ничего не придумаю, то так и скажу - покупай новый винт. |
|||
12
DrZombi
гуру
22.03.17
✎
10:01
|
(6) Напиши отправку почти из Обработки.
При закрытии (выход из функции и очистка переменной) обработки очищать файлы :) |
|||
13
DrZombi
гуру
22.03.17
✎
10:02
|
(8) Не удалит, пока он не отключится от сервера Почты, файлы не будут удалены :)
|
|||
14
DrZombi
гуру
22.03.17
✎
10:03
|
(11) Может купить нового программиста?
Почта = Новый ИнтернетПочта; Сообщение = Новый ИнтернетПочтовоеСообщение; Почта.Подключиться(Профиль); Почта.Послать(Сообщение); Почта.Отключиться(); |
|||
15
hydro2588
22.03.17
✎
10:41
|
(14) Есть Почта.Отключиться()
Вы прежде чем писать вообще код не пытались запустить, чтобы понять про какие временные каталоги речь? |
|||
16
DrZombi
гуру
22.03.17
✎
10:43
|
(15) В обработку запихни свою отправку
Да, странно выглядит. Но когда отправка завершается. И ваш код, покидает обработку. То тогда можно удалять все отправленные файлы :) |
|||
18
DrZombi
гуру
22.03.17
✎
10:46
|
+ пример.
МассивФайловДляУдаления = Новый Массив; ВашаОбработка = Обработки.ОтправкаПочты.Создать(); ВашаОбработка.ОтправитьВсемВсе(МассивФайловДляУдаления); //Затем удаливсе файлы по "МассивФайловДляУдаления" |
|||
19
DrZombi
гуру
22.03.17
✎
10:47
|
(15) >>> чтобы понять про какие временные каталоги речь?
Всем на этом форуме, побок, какие временные файлы, куда и как. У некоторых вообще на борту только Линукс :) |
|||
20
DenisVich
22.03.17
✎
10:48
|
В параметр /ClearCache не пробовали?
|
|||
21
DrZombi
гуру
22.03.17
✎
10:49
|
(20) к кэшу данное творение от 1С не относится.
1С при отправки файлов, захватывает их и держит. Покуда не закроется :) |
|||
22
hydro2588
22.03.17
✎
11:09
|
(19) Ну тогда они проходят мимо и все =) логично
(20) Этот параметр отрабатывает при запуске, а мне надо во время работы удалять вновь созданные временные каталоги. Тем более при закрытии программы он их и так удаляет. |
|||
23
kossmatiy
22.03.17
✎
11:26
|
Перкопределить переменные среды на более емкий диск уже предлагали?
|
|||
24
Demasiado
22.03.17
✎
11:31
|
Если позволяет оперативка сделать RAM диск, темпы писать на него. После перезагрузки все чистится автоматом
|
|||
25
hydro2588
22.03.17
✎
11:37
|
(23) Нашел вот статью, как это сделать. Да, это наверное самый нормальный вариант. Спасибо
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |