В логе мат на перемате

  • Автор темы Автор темы dimanis
  • Дата начала Дата начала

dimanis

Client
Регистрация
16.04.2016
Сообщения
200
Реакции
110
Баллы
43
Други помогите решить головоломку:
Есть xlsx таблица большая и толстая, куча потоков, каждый делает следущее:
1. копирует эту таблицу в свою папку (в виде файла) и там над ней издевается
2. берет случайную строку с удалением, работает с ней сам, НО если возникает необходимость, а она возникает часто, записывает некоторые значения в главную таблицу (общую для всех), после чего опять копирует эту главную таблицу к себе в папку и дальше с ней работает.

Таким образом все потоки воспринимают работу каждого потока.
Была проблема с тем, что чтение и запись происходят с некоторыми тормозами. Когда в главную таблицу что-то записали и тут же копируем себе ее файл, в этом файле еще нет того что мы туда записали. Было решено доп проверкой: в ячейку n пишется значение 1, файл копируется и в нем тут же проверяется та самая ячейка и если в ней еще нет "1" - она копируется еще раз, пока не появится "1". Проблема ушла. Шаблон в целом работает, но весь лог заваливается сообщениями:
"Внимание! Вы пытаетесь изменить файл ТАКОЙТО привязанный к списку или таблице, это может вызвать проблемы в работе. Для файлов, привязанных к спискам и таблицам, используйте соответствующие инструменты."
В логе все понятно написано, и я использую именно операции над таблицей, взять строку с удалением и все.
Таблица копируется экшеном "Скопировать файл" по пути необходимому этому потоку, после чего экшен таблицы "Привязать к файлу" его привязывает.
Пробовал удалять файл таблицы перед перезаписью, и даже переПривязывать эту таблицу на время замены файла к другой таблице, все одно "Внимание! Вы пытаетесь изменить...

Кто нибудь сталкивался с таким и как это решил?
 
По описанию ужас. Перенести все это дела в работу с БД это идеальное решение.
 
Тут эксель нужен для наглядности работы, вывода статистики отчетов и т.д. Все работает четко, +100500 сообщений в логе настроение портят. Вы Rostonix в разных темах писали о том что с таблицей надо работать экшенами таблицы а не файла и все будет путем, но тут почему то это не прокатывает. Вот простой пример который ругается http://clip2net.com/s/3yIB6bp
 
Вобщем это сообщение вылазит просто при копировании любого файла таблицы, которая привязана к файлу. Это означает что файлы таблиц копировать нельзя? Может я чего то недопонимаю но по моему это бред. Ладно бы при переносе файла было такое предупреждение, но при копировании зачем?
 
Вроде разобрался, есть такой экшен в таблицах Сохранить в файл, пробовал его как то, но видимо что то делал не так, он как раз для этого нужен.
 
Жованный крот, ну какой же этот экшен (записать в файл) оказывается медленный, просто полный обвал б...... От чего хотел уйти к тому и пришел. Изначально таблица копировалась построчно с счетчиком и это меня не устраивало т.к. в один поток это происходило мгновенно, но чем больше потоков тем тормознее и тормознее. Прешел на полное копирование файла таблицы, все заработало шустро, но предупреждения в логе достали. Сделал через запись в файл, вернулся к тормозам как с перебором строк, даже по моему еще медленнее стал работать. :dy:
 
сами решили мучатся с таблицами) вообще какая то странная задача. если каждый поток работает со своими копиями данных и постоянны жесткий диск должен перезаписывать много файлов, тут и на оперативу и на диск нагрузка
 

Кто просматривает тему: (Всего: 0, Пользователи: 0, Гости: 0)