|
Есть у кого-нить UDF'ка типа sleep(N) для 32-разр. ФБ ?
|
|||
---|---|---|---|
#18+
hi all Изабэлло выдумывать, как в каждом коннекте приостановить скрипт, "до особого распоряжения". И чтобы он проверял это распоряжение не чаще 1 раза в N секунд. Необходима UDF'ка, которую можно вызвать изнутри PSQL-кода с требованием "а ну спать N секунд!", и чтобы при этом сервак не грузился от этого спящего коннкета. Ставить VS и выдумывать велосипед - в лом, да и времени нет. Если есть у кого готовая dll - вышлите, плз, на p519446 ат yandex.ru Нужно для одного сверхважного теста ;) ЗЫ. А встроенная ф-ция в ФБ, видимо, не появится никогда :( ... |
|||
:
Нравится:
Не нравится:
|
|||
04.08.2015, 23:17 |
|
Есть у кого-нить UDF'ка типа sleep(N) для 32-разр. ФБ ?
|
|||
---|---|---|---|
#18+
Таблоид, Код: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22.
... |
|||
:
Нравится:
Не нравится:
|
|||
05.08.2015, 00:56 |
|
Есть у кого-нить UDF'ка типа sleep(N) для 32-разр. ФБ ?
|
|||
---|---|---|---|
#18+
если оно, спс! ... |
|||
:
Нравится:
Не нравится:
|
|||
05.08.2015, 06:27 |
|
Есть у кого-нить UDF'ка типа sleep(N) для 32-разр. ФБ ?
|
|||
---|---|---|---|
#18+
ТаблоидЗЫ. А встроенная ф-ция в ФБ, видимо, не появится никогда :( Разве этим не шедуллеры всякие занимаются? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.08.2015, 08:58 |
|
Есть у кого-нить UDF'ка типа sleep(N) для 32-разр. ФБ ?
|
|||
---|---|---|---|
#18+
wadmanТаблоидЗЫ. А встроенная ф-ция в ФБ, видимо, не появится никогда :( Разве этим не шедуллеры всякие занимаются? Чтобы внутри скрипта приостановить работу на некоторое время? Нет, вряд ли это работа для внешней утилиты. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.08.2015, 09:32 |
|
Есть у кого-нить UDF'ка типа sleep(N) для 32-разр. ФБ ?
|
|||
---|---|---|---|
#18+
miwaonlinewadmanпропущено... Разве этим не шедуллеры всякие занимаются? Чтобы внутри скрипта приостановить работу на некоторое время? Нет, вряд ли это работа для внешней утилиты. Чуть иначе: ему хочется чтобы некий скрипт дергался через указанные промежутки времени. Или по наступлению события. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.08.2015, 09:39 |
|
Есть у кого-нить UDF'ка типа sleep(N) для 32-разр. ФБ ?
|
|||
---|---|---|---|
#18+
wadmanmiwaonlineпропущено... Чтобы внутри скрипта приостановить работу на некоторое время? Нет, вряд ли это работа для внешней утилиты. Чуть иначе: ему хочется чтобы некий скрипт дергался через указанные промежутки времени. Или по наступлению события. Таблоидкак в каждом коннекте приостановить скрипт, "до особого распоряжения" ? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.08.2015, 10:17 |
|
Есть у кого-нить UDF'ка типа sleep(N) для 32-разр. ФБ ?
|
|||
---|---|---|---|
#18+
miwaonlinewadmanпропущено... Чуть иначе: ему хочется чтобы некий скрипт дергался через указанные промежутки времени. Или по наступлению события. Таблоидкак в каждом коннекте приостановить скрипт, "до особого распоряжения" ? ! ну подумай, зачем запускать и приостанавливать, если можно запускать только тогда, когда это необходимо? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.08.2015, 10:19 |
|
Есть у кого-нить UDF'ка типа sleep(N) для 32-разр. ФБ ?
|
|||
---|---|---|---|
#18+
wadmanmiwaonlineпропущено... пропущено... ? ! ну подумай, зачем запускать и приостанавливать, если можно запускать только тогда, когда это необходимо? Ты скрипты Таблоида видел? Там километровые простыни тестов и где-то внутрях у него неонка одного скрипта скорее всего надо подожать пока другой километровый скрипт чего-нить нагадит и потом они вместе будут пытаться завалить сервер ... |
|||
:
Нравится:
Не нравится:
|
|||
05.08.2015, 10:24 |
|
Есть у кого-нить UDF'ка типа sleep(N) для 32-разр. ФБ ?
|
|||
---|---|---|---|
#18+
wadman, там много чего может быть. Скорее всего у него скрипт некую предварительную инициализацию делает. Потом доходит до определённой точки где ждёт результатов другого коннекта. Если это действительно так, то такая схема может работать только если первый скрипт работает в RC, либо тупо читает внешнюю таблицу. По большому счёту схемка не очень, так как удерживает долгоиграющую транзакцию. Хотя чёрт его знает что он там наворотил. Пусть лучше он сам суть изложит ... |
|||
:
Нравится:
Не нравится:
|
|||
05.08.2015, 10:27 |
|
Есть у кого-нить UDF'ка типа sleep(N) для 32-разр. ФБ ?
|
|||
---|---|---|---|
#18+
Как раз задачи для шедулера: один скрипт дергает другой, который дергает первый (третий, десятый) после себя. Все равно не могу себе представить необходимость усыплять коннект слипами. Хотя, отсутствие шедулера, конечно и не к таким извратам может привести. :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
05.08.2015, 10:31 |
|
Есть у кого-нить UDF'ка типа sleep(N) для 32-разр. ФБ ?
|
|||
---|---|---|---|
#18+
wadman, внешний шедуляр должен каждый раз устанавливать новый коннект. Это может быть проблемой. А внутреннего в FB нету. Если будет то там тоже как минимум два варианта: 1. Каждый раз происходит подключение нужного пользователя и далее выполняется PSQL блок 2. Подключение происходит один раз при первом вызове, т.е. сохраняется контекст подключения, но каждый раз стартуется новая транзакция Вариант когда будет сохранятся контекст транзакции я не рассматриваю, так как такой вряд ли будет сделан вообще когда либо, да и слишком расточительно это. Второй вариант может быть полезен потому, что может иметь общие временные данные между выполнениями PSQL блока, например через контекстные переменные и GTT уровня соединения. Вот мне кажется, что Таблоиду нужно именно это. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.08.2015, 11:04 |
|
Есть у кого-нить UDF'ка типа sleep(N) для 32-разр. ФБ ?
|
|||
---|---|---|---|
#18+
Странно, что он решил использовать UDF, а не свой любимый трюк с таймаутом транзакции и select for update with lock. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
05.08.2015, 11:14 |
|
Есть у кого-нить UDF'ка типа sleep(N) для 32-разр. ФБ ?
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovСтранно, что он решил использовать UDF, а не свой любимый трюк с таймаутом транзакции и select for update with lock.Это тоже сначала было, но не пропёрло на CS, всё в ступор влетело при числе аттачей > 50 :-) Точный сценарий уже не вспомню, но попозжее воспроизведу. Ситуация следующая. При прогоне fbt-теста для CORE-1249 закралось сомнение, что с шатдауном в CS "чё-то не того": сообщение от IBProdiver'a какое-то лезет, да и базу в онлайн не переводит. Начал рыть дальше - и натолкнулся в трейсе на то, что уже после шатдауна в базе может шевелиться процесс GC (в арх-ре SS). Хорошо ещё, что пока GC там шевелится, управление в вызывающую среду из fbsvcmgr'a не возвращается. Дальше - больше: сделал примитивно-корявый тест с запуском 20 молотилок, уже на SuperClassic'e - а он взял и подвис в усмерть. Сделал еще пару раз на CS - и получил в логах нескольких (не всех) молотилок Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
0) асинхронный старт трейса силами fbsvcmgr'a 1) асинхронный старт N сеансов ISQL; 2) каждый после установки своего коннекта должен подождать без грузилова процесса сервера до тех пор, пока не увидит, что влезли все остальные (т.е. он "знает", сколько их должно быть в итоге); 3) как только "все тута" - так сразу и "понеслось": делаем дружно insert'ы, 1 млн строк 4) а в это время из-за угла, через пару секунд, выглядывает еще один fbsvcmgr и делает шатдаун ( action_properties dbname %dbpath%%dbname% prp_shutdown_mode prp_sm_full prp_force_shutdown 0 ). Батник при этом обязательно ждёт возврата управления из fbsvcmgr'a, т.е. тут вызов должен быть синхронным - в отличие от пп 0 и 1. 5) запускается еще раз fbsvcmgr с целью определить ID трейса, после чего - дается команда action_stop_trace. После этого тупо жду 7-10 сек - в надежде, что лог трейса полностью за это время запишется на диск. 6) ищу в логе трейса первое упоминание слова 'shutdown', запоминаю номер этой строки L 7) ищу далее в этом же логе ПОСЛЕ строки L любое из слов {ATTACH_DATABASE START_TRANSACTION COMMIT_TRANSACTION PREPARE_STATEMENT EXECUTE_STATEMENT_START EXECUTE_STATEMENT_FINISH CLOSE_CURSOR FREE_STATEMENT} -- но только чтобы там не было 'FAILED', т.к. это не интересует. ЗЫ. UDF - всё равно будет когда-нить полезной, но я таки нашёл вспомнил, как выкрутиться без неё. Сейчас допиливать буду. Одну хрень уже нарыл (странности в логе коннектов после шатдауна, см. выше), может еще чего вытащу - ждите новостей (в трекере, наверное). ... |
|||
:
Нравится:
Не нравится:
|
|||
05.08.2015, 12:45 |
|
Есть у кого-нить UDF'ка типа sleep(N) для 32-разр. ФБ ?
|
|||
---|---|---|---|
#18+
Таблоид, гм... я так понял тебе надо сначала все коннекты сделать, а потом в каждом из них запустить скрипт, но ты не можешь подсунуть скрипт уже потом после подключения isql к БД. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.08.2015, 13:24 |
|
|
start [/forum/topic.php?fid=40&msg=39023477&tid=1562688]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
56ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
51ms |
get tp. blocked users: |
1ms |
others: | 15ms |
total: | 167ms |
0 / 0 |