
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

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(который уже в памяти), что бы не дергать бузу, и как только числа равны делать таблицу активной

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

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) автоинкремент может скакнуть при роолбеке, игноре и прочем

lost
19.07.2018
09:16:13

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

Anton
19.07.2018
09:17:49

Alexey
19.07.2018
09:19:05

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 с вопросом, а все ли хорошо. Если да, сразу помечаем таблицу, если нет, запрашиваем инфу, а что еще нужно.

Valery
19.07.2018
09:40:57

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
?

Al
19.07.2018
13:45:00
?
30 записей в секунду это не быстро и не часто.

Роман
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

Al
19.07.2018
13:51:07

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:56:20

Al
19.07.2018
13:58:09

Valery
19.07.2018
13:58:44

Al
19.07.2018
13:59:12

Google

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

Valery
19.07.2018
14:10:25

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

Vladislav
19.07.2018
17:23:02
Было где-то
Про sql так точно

lost
19.07.2018
17:35:32
Есть про говнокод сайт
И там можно выбрать sql

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