Cell
|
|
« : 27 Марта 2010, 02:40:51 » |
|
Хе хе Столкнулся я с проблемой ), стояла элементарная казалось бы задача перевести допполе _control со значения "нет" на значение "да" для всех 2000 пользователей одновременно. На самом деле..... проблема это мягко говоря. Казалось бы ничего сложного да? простым запросиком да? я тоже так подумал ))) сначала ))) в результате родился совершенно безумный скрипт на php а заодно нашелся баг в модуле графиков, который проявляется интересным образом: так как с некоторых пор шаблонов допданных имеется два штука, то если юзеру сохранить (изменить, добавить) что-то в шаблоне "Адрес", то графики после этого идут курить и в процессе заполнения баз и в процессе отображения юзерам. Если модуль используется для целей контроля - беда не большая, достаточно создать новую ревизию в шаблоне "техданные", но если кому понадобится - есть фикс. По существу темы: интересно было бы узнать, как автор планировал включить всем smtp а то тут один знакомый рассказывал что у него в абонотделе человечек сидит и 5000 карточек руками перебирает?
|
|
|
Записан
|
|
|
|
blackjack
NoDeny
Старожил
Карма: 24
Offline
Сообщений: 352
|
|
« Ответ #1 : 27 Марта 2010, 08:20:07 » |
|
я вважаю що ідея з додатковим даними хороша, але реалізація паскудна.
|
|
|
Записан
|
|
|
|
versus
|
|
« Ответ #2 : 27 Марта 2010, 12:04:31 » |
|
Всем smtp включать это капец мозга. вам свой белый айпи каждый день из стоплистов выгребать не накладно будет?
|
|
|
Записан
|
|
|
|
Efendy
|
|
« Ответ #3 : 27 Марта 2010, 12:22:54 » |
|
Ну, а я типа не говорил, что концепция допполей будет переделываться? Или надо пережевывать этот момент?
|
|
|
Записан
|
|
|
|
goletsa
NoDeny
Спец
Карма: 21
Offline
Сообщений: 973
|
|
« Ответ #4 : 27 Марта 2010, 12:31:35 » |
|
Всем smtp включать это капец мозга. вам свой белый айпи каждый день из стоплистов выгребать не накладно будет?
Да тогда проще в конфиге саттелиты снять галку с блокировки smtp чем ставить разрешено всем.
|
|
|
Записан
|
|
|
|
Cell
|
|
« Ответ #5 : 27 Марта 2010, 14:00:45 » |
|
Всем smtp включать это капец мозга. вам свой белый айпи каждый день из стоплистов выгребать не накладно будет?
На самом деле, чаще всего в блэклисты попадают адреса, не имеющие в бекрезолве вменяемого MX (т.е. почтовика), а также впервые встречающиеся почтовики. Прошу заметить - это наиболее часто встречающаяся причина!!! Хочу заметить, что закрывать какие-то порты (тем более почтовые) - это не совсем правильная задача провайдера. Но я согласен, проще прикрыть 25 порт и открыть его тем кому нужно, сам так делаю, не потому что это правильно, а потому что ТАК ПРОЩЕ ЖИТЬ. Как убить таблицу, отвечающую за эту блокировку я знаю, и прекрасно это могу сделать. Вопрос как раз не в этом, а пример был приведен, чтобы проиллюстрировать проблему, которая существует в организации допполей. Фактически же было необходимо подключить прорисовку траффика в моем модуле для всех юзеров сети. Повторюсь, что пришлось просидеть два часа отлаживая самописный скрипт, заточенный под эту задачу. Даже не знаю, насколько правильно все получилось с этими ревизиями, но все заработало вроде.
|
|
|
Записан
|
|
|
|
Cell
|
|
« Ответ #6 : 27 Марта 2010, 14:07:18 » |
|
Ну, а я типа не говорил, что концепция допполей будет переделываться? Или надо пережевывать этот момент?
Пережевывать не надо, просто задачи стоят сегодня и решать их надо сегодня а не когда-то в будущем. При всем при этом хотелось бы иметь какую-то обратную совместимость чтобы под "новую концепцию" не пришлось переделывать большинство, если не все модули (особенно с учетом того, что очень приочень много туда уже завязано), как пример можно привести модуль договора. Все классно, как бы.... и разработчик даже может под новую "концепцию" переделает его, но многие очень серьезно вносили туда свои изменения.
|
|
|
Записан
|
|
|
|
Efendy
|
|
« Ответ #7 : 27 Марта 2010, 14:15:33 » |
|
Я попробую в 50ю версию загнать эту новую концепцию. Поле revision будет отсутствовать, просто вычеркните его из sql-запросов
|
|
|
Записан
|
|
|
|
blackjack
NoDeny
Старожил
Карма: 24
Offline
Сообщений: 352
|
|
« Ответ #8 : 27 Марта 2010, 16:53:47 » |
|
та ладно, поправим пару рядків коду тай по всьому. Просто я от стикнувся з проблемо теж. Наприклад, треба змінити IP адреси клієнтам на цілий будинок в зв'язку з сегментаціюєю мережі. Так виявляється шо треба або вручну перебивати, або писати "мега скріпт/запит" для такої задачі. Ну незручно короче.
|
|
|
Записан
|
|
|
|
Efendy
|
|
« Ответ #9 : 28 Марта 2010, 01:28:35 » |
|
та ладно, поправим пару рядків коду тай по всьому. Просто я от стикнувся з проблемо теж. Наприклад, треба змінити IP адреси клієнтам на цілий будинок в зв'язку з сегментаціюєю мережі. Так виявляється шо треба або вручну перебивати, або писати "мега скріпт/запит" для такої задачі. Ну незручно короче.
Т.е. ты хочешь один интеллектуальный sql-запрос который выдаст определенным клиентам Ip-адреса по определенным законам? Следующим шагом будет sql-запрос, который будет заменять nodeny.pl
|
|
|
Записан
|
|
|
|
Efendy
|
|
« Ответ #10 : 28 Марта 2010, 01:45:23 » |
|
Эта информация для программистов.
Сделал предварительные изменения по концепции допполей в 50й версии.
Сейчас dopvalues в таком виде: CREATE TABLE IF NOT EXISTS `dopvalues` ( `parent_id` int(10) unsigned NOT NULL, `dopfield_id` smallint(5) unsigned NOT NULL, `field_value` text NOT NULL, UNIQUE KEY `parent_id_2` (`parent_id`,`dopfield_id`), KEY `parent_id` (`parent_id`) ) ENGINE=InnoDB;
т.е. минимум информации: чьи данные, с каким полем связаны, значения данных. Уменьшение объема таблицы, с которой интенсивно идет работа ессно приведет только к ускорению. Заметили, что нет инфы по времени изменения/кто изменил/номер ревизии?
Механизм такой. Есть еще табличка old_dopvalues. При сохранении данных, инфа записывается сначала в нее. Потом вызывается процедура замещения данных в dopvalues на новые. Процедура проверяет корректность данных (пока только отсутствие дубликатов в полях - я включил флаг `уникальное поле` уже в этой версии) и если есть проблема - данные не переносятся. Вытащить эти данные, как и любые ранее записанные, можно из old_dopvalues по ревизии. Важно то, что вам вообще не нужно знать об этой таблице и в частности про ревизии. Это я привел для лучшего понимания процесса.
Все, что вам требуется при получении данных клиента, так это выполнить такой запрос:
select * from dopdata where parent_type=0 and parent_id= id_клиента
Кстати, в 52й версии нет и parent_type (сейчас это поле указывает чьи данные - оборудования или клиента) - там оборудование логически не отделяется от клиента, как и от любого другого объекта. Это тоже для понимания процесса.
Сейчас я прохожусь по всем скриптам и пытаюсь менять sql-запросы под новую концепцию. Основная часть сделана. Но остались мелочи + обязательное тестирование, которое придется делать вам, особо активные граждане, заставившие меня делать изменения в старых (для меня) версиях.
Еще несколько нюансов. Шаблон (template_num), указывающий на группу данных (адрес, техданные и т.д.) стал менее нужен вам - ранее, каждая уникальная ревизия хранила только один шаблон. Т.е. чтобы получить данные по всем шаблонам, нужно было пройтись по нескольким ревизиям. Сейчас все данные в куче и выбираются за один sql-запрос. Вот этот момент положительно отразился на nomake.pl - теперь можно не юзать тег template.
Тип таблицы, как вы заметили, InnoDB - постепенно переходим на транзакции
|
|
|
Записан
|
|
|
|
blackjack
NoDeny
Старожил
Карма: 24
Offline
Сообщений: 352
|
|
« Ответ #11 : 28 Марта 2010, 16:12:55 » |
|
Т.е. ты хочешь один интеллектуальный sql-запрос который выдаст определенным клиентам Ip-адреса по определенным законам?
коментр невірний. Я хочу на вхід скрипту передати номер будинку, назву вулиці, нову підмережу, а скірпт має змінити на основі цих даних IР адреси на адреси із вказаної підмережі. Напрклад, є адреси вул.Космонавтів 5,7,9,11,13 там зараз 89 абонентів, проводимо сегментацію мережі, одне волокно на будинок, відповідно одна підмережа на один будинок і їм треба змінити адреси з 172.16.35.Х/24 на 172.16.36-39.Х/24. Ви пропонуєте близько 80 разів вибирати кожного клієнта і мінятии йому адрес? Чи я к в такій ситуації бути? Следующим шагом будет sql-запрос, который будет заменять nodeny.pl
Только ненадо мне сейчас раасказывать о кнопке сделать все заебись.
|
|
|
Записан
|
|
|
|
|