@dba_ru

Страница 573 из 718
Pavel
19.07.2018
08:50:57
Аля, что очередь выгребли?

Valery
19.07.2018
08:51:57
да

Pavel
19.07.2018
08:52:22
А бэк сам отрапортовать в таблицу не может, что у него пул закончился и он молодец?

Anton
19.07.2018
08:53:18
Ну да, это определённо логичнее

Google
Valery
19.07.2018
08:57:11
А бэк сам отрапортовать в таблицу не может, что у него пул закончился и он молодец?
В очереди данные могут быть разные. И Когда очередь пуста, это не означает что все записи добавлены. И наоборот, когда она не пуста, там могут висеть другие таски на обработку, которые попадут в другую таблицу уже, хотя в эту таблицу уже все записи будут добавлены

Anton
19.07.2018
08:57:45
тогда наверное надо делать отдельный счётчик тебе

будет быстрее, чем триггер

Pavel
19.07.2018
08:58:20
А кто изначально знает эти граничные значения, сколько ему работать?

Valery
19.07.2018
08:59:54
А кто изначально знает эти граничные значения, сколько ему работать?
Тот кто отправляет сообщения в очередь. Это делается все в одной программе. Отправка в очередь из программы 1 -> обработка задач программой 2 -> результат возвращается в программу 1

Pavel
19.07.2018
08:59:58
Опять таки, можно написать SP в которую вложить логику проверки, которую бэк и будет дергать. Идея такая же как и с шедулером, только там раз в n времени, а тут по запросу от бэка

Valery
19.07.2018
09:00:04
Это значение есть в базе в общем

Pavel
19.07.2018
09:01:17
Это я не серьезно, если что :)

т.е Программа 1 знает сколько еще сообщений в очередь надо отправить? А программа 2 просто льет это в бд по разным таблицам?

Valery
19.07.2018
09:05:19
Опять таки, можно написать SP в которую вложить логику проверки, которую бэк и будет дергать. Идея такая же как и с шедулером, только там раз в n времени, а тут по запросу от бэка
А в какой время бэк должен дергать это? Опять таки не известно. Только если городить какой то невъебенно костыльный способ, который при старте проги будет смотреть какие из таблиц еще не активны, загружать инфу о них в память, делать запрос на COUNT, а потом уже в памяти, в зависимости от того в какую таблицу нужно положить пришедшее сообщение, увеличивать этот COUNT(который уже в памяти), что бы не дергать бузу, и как только числа равны делать таблицу активной

т.е Программа 1 знает сколько еще сообщений в очередь надо отправить? А программа 2 просто льет это в бд по разным таблицам?
нет, программа 2, выполняет задачу и шлет ответ в прогрумму 1, а программа 1 уже льет в базу

Pavel
19.07.2018
09:07:19
Ну вот после того, как она зальет в базу и вызывать проверку.

Google
Valery
19.07.2018
09:08:02
Ну вот после того, как она зальет в базу и вызывать проверку.
после того как зальет в базу одну запись?

Pavel
19.07.2018
09:08:55
Нет, весь пул

Valery
19.07.2018
09:09:21
Нет, весь пул
как узнать что весь пул залит?

Pavel
19.07.2018
09:09:21
Или я как-то не так понял :)

Программа 1, отправляет в программу 2 только 1 запись?

В проге 1 откуда-то инфа же берется, о количестве сообщений, которые нужно отправить?

Valery
19.07.2018
09:11:29
Программа 1, отправляет в программу 2 только 1 запись?
Нет. Изначально генерит туеву хучу сообщений и отправляет их. То есть, фактически, сообщения которые отправлены в программу 2 на обработку, придут назад(в программу 1) в том же количестве в котором и были отправлены

В проге 1 откуда-то инфа же берется, о количестве сообщений, которые нужно отправить?
Берется, и мы ее знаем. Она даже потом записывается в базу, когда все сообщения сгенерировались и отправились в оередь

Pavel
19.07.2018
09:13:34
Ну вот это куча сообщений в програме 1 и есть пул, статус каждого конкретного сообщения вы знаете, как только программа 1 считает, что все что она должна была заслать в программу 2, вернулось обратно и записалось в бд, проверить

Alexey
19.07.2018
09:15:07
Такой триггер ничего не замедлит. Уловие - ID - автоинкремент CREATE OR REPLACE TRIGGER TRIGGER1 BEFORE INSERT ON GDS FOR EACH ROW BEGIN IF MOD(:NEW.ID/1000) = 0 THEN -- действия на каждую 1000 запись END IF; END;

lost
19.07.2018
09:15:37
фейспалм

Anton
19.07.2018
09:15:40
1) автоинкремент не всегда без оффсета 2) автоинкремент может скакнуть при роолбеке, игноре и прочем

Pavel
19.07.2018
09:16:53
Да и число как я понял рандомное, при котором должен происходить апдейт левой таблицы

Alexey
19.07.2018
09:19:05
Если что - даже абсолютно пустой триггер нехило замедляет вставку
Наверное зависит от БД, в Oracle пустой триггер практически не влияет на производительность

Anton
19.07.2018
09:19:30
"Практически" - понятие относительное. Проведи замеры, узнаем точно))))

Я на мускуле мерил, там вроде процентов 15-20 получалось

lost
19.07.2018
09:20:42
если в оракле код объектов компилится а не интерпретируется при вызове - может и не замедляет

Alexey
19.07.2018
09:21:26
Хотя наверное при большой конкуреси триггера не самый хороший вариант, наверное логика на стороне сервера приложений более правильный путь

Google
Valery
19.07.2018
09:25:43
А в какой время бэк должен дергать это? Опять таки не известно. Только если городить какой то невъебенно костыльный способ, который при старте проги будет смотреть какие из таблиц еще не активны, загружать инфу о них в память, делать запрос на COUNT, а потом уже в памяти, в зависимости от того в какую таблицу нужно положить пришедшее сообщение, увеличивать этот COUNT(который уже в памяти), что бы не дергать бузу, и как только числа равны делать таблицу активной

Babulyas
19.07.2018
09:26:19
Привет, подскажите, права к папке хранить отдельной таблицей или в той же таблице что и сама папка?

Pavel
19.07.2018
09:30:14
Я уже ответил, когда у бэка заканчивается пул. На старте проги, у нее есть кол-во сообщений которые нужно отправить, верно?

Valery
19.07.2018
09:33:37
Я уже ответил, когда у бэка заканчивается пул. На старте проги, у нее есть кол-во сообщений которые нужно отправить, верно?
Не совсем на старте. Событие отправки сообщений срабытывает по крону, но да, количество есть

Farid
19.07.2018
09:37:16


Что делать?

Pavel
19.07.2018
09:39:21
Не совсем на старте. Событие отправки сообщений срабытывает по крону, но да, количество есть
1. Мы знаем, что нам нужно отправить 10000 сообщений. 2. Мы начинаем разгребать этот пул, попутно помечая что мы уже обработали(логика бэка). 3. Когда пул из 10к закончился, дергаем SP с вопросом, а все ли хорошо. Если да, сразу помечаем таблицу, если нет, запрашиваем инфу, а что еще нужно.

Pavel
19.07.2018
09:44:43
В моем понимании, есть общий пул, из которого бэк распихивает сообщения по потокам и управляет этим процессом, и знает, когда у него оный закончился, возможно у вас как-то очередь не так реализована? :)

Valery
19.07.2018
10:06:41
В моем понимании, есть общий пул, из которого бэк распихивает сообщения по потокам и управляет этим процессом, и знает, когда у него оный закончился, возможно у вас как-то очередь не так реализована? :)
В одну очередь посылаются таски на выполнение, это очередь разгребает программа 2. И вот программа 2, смотрит это сообщение, смотрит что с ним надо сделать, смотрит куда надо отправить результат. Если результат надо отправить в очередь, то отправляет его в очередь(уже другую). А эту(другую) очередь слушает программа1(которая изначально отправляли сообщения) и она уже пишет их в базу. Ну я впринципе понял как сделать это надо. Как я выше описал. Я не могу отталкиваться от того, что если пул пустой, значит конкретно эта таблица уже заполненна

Pavel
19.07.2018
10:07:54
А я и не говорил, что по завершению пула надо помечать таблицу, по завершению пула, надо проверять таблицу

Pavel
19.07.2018
10:08:37
А дальше на ваше усмотрение

Ilia
19.07.2018
11:46:48
Поясни, что надо.

Natali
19.07.2018
12:30:19
https://m.habr.com/company/technoserv/blog/417545/

Fike
19.07.2018
12:31:21
да баш орг что ли реанимируете

Valery
19.07.2018
13:44:16
?

Роман
19.07.2018
13:46:01
?
Это жесть как "много".

Google
Valery
19.07.2018
13:46:39
Какой млин бред.
предложи другой вариант

Al
19.07.2018
13:46:43
Угу бигдата и все такое ?

предложи другой вариант
Вариант? Их есть у меня. Предлагаю уволить нафиг разраба и взять нормального, который правильно продумает логику работы приложения.

Valery
19.07.2018
13:48:23
Admin
ERROR: S client not available

Al
19.07.2018
13:48:31
А не будет городить какой то бред с "подсчетом записей и закрыванием таблиц" ?

С логикой все в порядке. Что именно в этой логике не правильно, или не понятно?
Впечатление что ты сам не понимаешь что делаешь и зачем. В этом вообщем то все

Valery
19.07.2018
13:49:54
Впечатление что ты сам не понимаешь что делаешь и зачем. В этом вообщем то все
Если Вам чет не понятно, это не значит что я не понимаю этого

А не будет городить какой то бред с "подсчетом записей и закрыванием таблиц" ?
"подсчит записи и закрывание таблиц" нужно для того, что бы эти неполные таблицы не показывать юзеру

Shaz
19.07.2018
13:50:52
Если Вам чет не понятно, это не значит что я не понимаю этого
Если ты не можешь что-то обьяснить - значит ты сам этого не понимаешь. (кто-то)

Valery
19.07.2018
13:52:20
Ох мляяя там еще и юзер видит таблицы в базе ?
Ля, а нах они тогда нужны? Собирается инфа о чем то, потом отдается юзеру

Al
19.07.2018
13:53:12
Я не могу.. пристрелите нафиг.. видимо это комета так действует на них.

Valery
19.07.2018
13:54:09
Что именно не так? Какой момент не понятен? Давай подробней распишу

Al
19.07.2018
13:55:43
Да мне уже собственно все понятно. Смешно что там выше народ пытался решить твою задачу, не понимая какой бред они решают. ?

Valery
19.07.2018
13:58:44
Давай распиши. Я на завтрак ушел
Так что именно непонятно то?

Al
19.07.2018
13:59:12
Так что именно непонятно то?
А ты все распиши. Никто никуда не спешит же

Google
Al
19.07.2018
14:02:37
Просто есть вариант, что объясняя нам, ты сам поймешь. Но это не точно.

Al
19.07.2018
14:12:34
я понимаю что я делаю
судя по отрывочным высказываниям, нифига ты не понимаешь

про недавнее о яндексе навеяло - А ты где работаешь? - В Яндексе. - Таксист, значит...

Valery
19.07.2018
14:13:41
судя по отрывочным высказываниям, нифига ты не понимаешь
я заебусь расписывать всю структуру, но если вечером будет не лень, то распишу

Al
19.07.2018
14:14:33
я заебусь расписывать всю структуру, но если вечером будет не лень, то распишу
дык нам оно и нафиг не упиралось по большому счету. но конечно, разработку нужно делать без всяких записей и планов, ну вот как левая пятка зачешется

но, "обрезать таблицы в базе, что бы юзеру было удобнее их просматривать" это заявка на победителя этой недели, а может даже месяца

Михаил Власов
19.07.2018
16:05:30
То ли еще будет... Неделя еще не кончилась.)

Fike
19.07.2018
16:07:53
five nights at dba's

Al
19.07.2018
16:21:12
five nights at dba's
думаешь пора туры продавать? или намутим по мотивам баша, например SELECT...ORG

Vladislav
19.07.2018
17:23:02
Было где-то

Про sql так точно

lost
19.07.2018
17:35:32
Есть про говнокод сайт

И там можно выбрать sql

Fike
19.07.2018
17:38:05
он кстати теперь с какого-то хуя забанен сами понимаете кем

Страница 573 из 718