Сохранен 38
https://2ch.hk/b/res/220755856.html
24 декабря 2023 г. Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!
Аноним 21/05/20 Чтв 19:27:48 #1 №220755856 
15805561530950.jpg
Есть тут программисты уровня senior и выше?
Не с кем посоветоваться и в голове картинка архитектуры не складывается.
Нужно с кем-то обсудить.
Если уделите мне 15 минут в скайпе/телеге - будет вообще супер.
Готов материально отблагодарить.

Поверхность: работа с сообщениями в несколько шагов и роутинг.
Аноним 21/05/20 Чтв 19:28:10 #2 №220755883 
И сразу мгновенный бамп.
Аноним 21/05/20 Чтв 19:30:01 #3 №220756029 
Ну или в деперсонализированном месенджере каком.
Но вряд ли вообще люди найдутся, конечно...
Аноним 21/05/20 Чтв 19:31:36 #4 №220756140 
Бимп
Аноним 21/05/20 Чтв 19:34:45 #5 №220756370 
Bamp
Аноним 21/05/20 Чтв 19:35:53 #6 №220756439 
Ех... тут все мои друзья.
Аноним 21/05/20 Чтв 19:36:54 #7 №220756511 
А чем тостер сру не устраивает?
Аноним 21/05/20 Чтв 19:37:03 #8 №220756522 
15815304192420.jpg
Аноним 21/05/20 Чтв 19:37:23 #9 №220756550 
image.png
>>220755856 (OP)
Только по предоплате
Аноним 21/05/20 Чтв 19:37:49 #10 №220756584 
>>220756511
Не знаю. Может и туда запощу. Но ведь "тут все мои друзья"
Вопрос не четкий, просто обговорить надо.
Аноним 21/05/20 Чтв 19:38:38 #11 №220756657 
>>220756550
Сколько хочешь? Ты точно сеньер+?
Аноним 21/05/20 Чтв 19:40:05 #12 №220756762 
15848173654020.jpg
Аноним 21/05/20 Чтв 19:40:08 #13 №220756765 
>>220755856 (OP)
Аниме, ты как всегда право. Пойду затарюсь пивасом.

Сеньер и выше ты там для банка чтоли ИС прожектируешь? Ебашь шину, кто не забрал вовремя - тот сам лох, пусть ставят больше консумеров.
Аноним 21/05/20 Чтв 19:43:24 #14 №220757000 
>>220756765
Типа для банка пива.
А что делать с мультистеп процессингом?
Мне надо сообщение в несколько шагов обрабатывать. Вот ряд вопросов и появился.
Передавать и данные по шине или только ивент, а само тело хранить в базе и апдейтить по ходу дела. Или не апдейтить и новые записи создавать.
Аноним 21/05/20 Чтв 19:44:09 #15 №220757066 
>>220756657
Мой тебе совет, ты сначала нарисуй что ты хочешь сделать и сколько можешь заплатить, а приходить и просто просить "нарисуйте мне архитектуру", ну блин, тебя скорее всего просто пошлют нахуй.
Аноним 21/05/20 Чтв 19:47:26 #16 №220757322 
>>220757066
Да мне поговорить просто бы.
У меня есть некое видение, но оно мне не нравиться.
Согласен, что шапка мутная.
Готов 20$, за 40 минутную беседу заплатить. Да, мало, символически.
Аноним 21/05/20 Чтв 19:55:19 #17 №220757933 
Накалякал вопрос. Все равно мутно, да.

Задача:
Принимать, обрабатывать, отсылать сообщения в несколько шагов.

Пример: получить котика в формате xml, валидировать котика, преобразовать его в формат json, сохранить котика в БД 1 если левое ушко серое, сохранить котика в БД2 если у него есть левое ушко (тоесть котик может быть сохранен дважды), отослать информацию котика с сгенерованными в БД2 или в БД1 айдишниками людям, подписаным на котика с подходящими фильтрами, трансформировать сообщение в нужный формат перед отправкой.

Все должно быть конфигурируемым.

Вопросы:

1. Разделять ли ивент и сообщение? Я имею ввиду: сохранять данные в БД и ивентом тригерить следущий шаг (по сервис басу вызовется функция где в теле будет только ИД записи) или передавать и данные вместе с ивентом.

2. Хранение данных и текущего состояния очереди.

2.1. Как я хочу сделать: по схеме выше с самого старта создадутся 2 очереди с прямой последовательностью без ветвлений. На каждую создастся запись в базе со списком необходимых действий, по мере продвижения эта запись будет мутировать.
2.2. Вариант второй - на каждый шаг создавать отдельную запись в конце выполнения предыдущей. 

Или же все нахуй и просто меседж пробрасывать каждый раз новый дальше (вопрос куда дальше, и для некоторых операций в очередь его можно и не ставить, к примеру конвертировать сразу перед отправкой , а не разделят на два ша). Так будет сложней следить за состоянием месседжа. Я все-таки склоняюсь в сторону БД пока.
Аноним 21/05/20 Чтв 19:57:30 #18 №220758126 
201112191002100743.jpg
Аноним 21/05/20 Чтв 19:58:52 #19 №220758243 
201112191032254518.jpg
Аноним 21/05/20 Чтв 20:00:02 #20 №220758354 
201112191388068883.jpg
Аноним 21/05/20 Чтв 20:01:41 #21 №220758479 
201112191390517285.jpg
Аноним 21/05/20 Чтв 20:03:00 #22 №220758586 
4001530.jpg
Аноним 21/05/20 Чтв 20:05:07 #23 №220758768 
15892872489713.jpg
Что-то взгрустнулось ажна от своих же картинок.
Аноним OP 21/05/20 Чтв 20:07:09 #24 №220758916 
>>220757933
Вот вопрос, если что.
Аноним OP 21/05/20 Чтв 20:07:50 #25 №220758975 
15890278684020.jpg
Аноним OP 21/05/20 Чтв 20:10:12 #26 №220759155 
15890225869190.png
Аноним OP 21/05/20 Чтв 20:13:38 #27 №220759397 
15758197642000.jpg
Эх...
Аноним OP 21/05/20 Чтв 20:15:29 #28 №220759518 
15837762187533.png
Аноним OP 21/05/20 Чтв 20:17:02 #29 №220759630 
Оно бампается-то хоть?
Или абу лимитирует бампы с одного ИП?
Аноним 21/05/20 Чтв 20:23:04 #30 №220760067 
>>220759630
Бампается, че хотел то? Суть проблемы изложи.
Забесплатно у тру сеньоров только хуй пососать можно, держу в курсе
Аноним OP 21/05/20 Чтв 20:23:59 #31 №220760123 
>>220760067
Вот тут немного попытался сформулировать.
>>220757933

Ну разве нету тру сеньеров-лапочек?
Аноним 21/05/20 Чтв 20:25:12 #32 №220760226 
>>220757933
Летели два верблюда, один рыжий, другой налево. Сколько весит килограмм асфальта, если ежику 24 года?
Аноним 21/05/20 Чтв 20:26:27 #33 №220760338 
>>220757933
Это у тебя Система состояний, которая представляет собой конвейерс по сути.
В одну таблицу бд ложишь событие с уникальным идом + его состояние
В другие таблицы бд ложишь данные, которые референсятся по ид события.
Как крутить конвейер решай сам. И там и там подводные камни есть.
Аноним 21/05/20 Чтв 20:33:11 #34 №220760855 
>>220760338
Т.е. есть состояние 0 когда пришли данные
Состояние 1 когда данные распарсили
Состояние 2 когда распарсенные данные разослали
и тд...
Правильнее всего конвейер крутить в отдельном потоке (те. есть поток обработки и поток приема данных). В какой нибудь жабе для этого есть воркерфактори, но это уже для совсем задротов.
Ах да. Не забудь делать sleep в потоке обработки чтобы не всрать 100% цпутайма на ядро, и проверить чтобы твоя бд умела адекватно работать с асинхронными записями.

мимо-одинокий-дрочер-на-архитектуры
Аноним OP 21/05/20 Чтв 20:33:32 #35 №220760881 
>>220760338
>В одну таблицу бд ложишь событие с уникальным идом + его состояние
Состояние - имеется ввиду всякая метаинформация, типа статус, ошибки, ретрай каунт?

>В другие таблицы бд ложишь данные, которые референсятся по ид события.
То есть сначала заполняются события (таблицы с данными пустые, кроме первого). События крутятся и смотрят на данные с предыдущего?

Выглядит хорошо.
Еще погуглю потом по твоим ключевым словам.
Спасибо.
Аноним OP 21/05/20 Чтв 20:40:41 #36 №220761390 
>>220760855
Так в таблице Состояние должно быть по записи на действие или нет?
Каждое действие я планирую тригерить ивентом через сервис бас. Для каждого типа действий будет свой ендпоинт, так что там потоками все ок должно быть.
Тут еще ж главное, чтоб это все конфигурировалось.
Допустим надо нам отправить котика мемесному поцу - добавляем в конфигуратор таск "конвертировать кота в всратого" и потом "отправить человеку"
Аноним OP 21/05/20 Чтв 20:49:41 #37 №220761965 
>>220760855
Вернись плиз :(
Аноним 21/05/20 Чтв 20:50:29 #38 №220762017 
>>220755856 (OP)
Давай бесплатно bouxroix
comments powered by Disqus

Отзывы и предложения