Size: a a a

Software Design/Architecture/Zen

2020 November 16

SP

Sergey Protko in Software Design/Architecture/Zen
Nekt
аргументируй, в каком месте? Основная проблема - высококонкуретный доступ - решается использованием неблокирующих операций. Тут можно накосячить только в реализации.
ну вот пришло 1000 человек. все тыкнули next. Если без "локов" то у тебя вся тысяча получит один и тот же параграф (да это оч негативный кейс, на них проще).
источник

N

Nekt in Software Design/Architecture/Zen
Sergey Protko
ну вот пришло 1000 человек. все тыкнули next. Если без "локов" то у тебя вся тысяча получит один и тот же параграф (да это оч негативный кейс, на них проще).
ты прочитал про инкремент же?
источник

SP

Sergey Protko in Software Design/Architecture/Zen
Nekt
ты прочитал про инкремент же?
ну это тот же лок, не?
источник

SP

Sergey Protko in Software Design/Architecture/Zen
ну то есть... ты хочешь что бы каждый запрос "курсор" двигал
источник

SP

Sergey Protko in Software Design/Architecture/Zen
для того что бы это работало операция сдвига курсора должна быть блокирующей
источник

NI

Nikita Ilin in Software Design/Architecture/Zen
У меня ещё была идея собирать в кучу запросы за один и тот же документ
источник

NI

Nikita Ilin in Software Design/Architecture/Zen
И пачками обрабатывать
источник

SP

Sergey Protko in Software Design/Architecture/Zen
ну собственно мой наброс про саги про это - собираешь запросы - назначаешь штуки людям.
источник

SP

Sergey Protko in Software Design/Architecture/Zen
Nikita Ilin
У меня ещё была идея собирать в кучу запросы за один и тот же документ
еще вопрос - что если я забрал параграф и вырубил комп?
источник

N

Nekt in Software Design/Architecture/Zen
Sergey Protko
ну это тот же лок, не?
не. Это просто счетчик. Основная его прелесть в том, что ты за счет этого несчастного счечика быстро можешь раздать всем порядковые номера и дальше они будут действовать независимо
источник

SP

Sergey Protko in Software Design/Architecture/Zen
есть какая-то логика мол "если забрал и не заапрувил - можно выдать другому?"
источник

NI

Nikita Ilin in Software Design/Architecture/Zen
Sergey Protko
еще вопрос - что если я забрал параграф и вырубил комп?
Таймер на 10 минут
источник

NI

Nikita Ilin in Software Design/Architecture/Zen
Через 10 минут можно выдать другому, сессия истекает
источник

SP

Sergey Protko in Software Design/Architecture/Zen
Nekt
не. Это просто счетчик. Основная его прелесть в том, что ты за счет этого несчастного счечика быстро можешь раздать всем порядковые номера и дальше они будут действовать независимо
ну для 10К юзеров может быть прокатит, хотя конечно это всеравно работа с централизованным стэйтом синхронно что не весело
источник

SP

Sergey Protko in Software Design/Architecture/Zen
Nikita Ilin
Через 10 минут можно выдать другому, сессия истекает
ну вот я б на сагах делал)))

Приходит сообщение мол "дай следующий параграф" и я их складываю в распределительную шляпу сагу. Та следит за тем что бы у нее был пул параграфов которые можно выдавать. Челу назначился параграф - запускаем отдельную сагу для него которая повесит себе таймаут через 10 минут освободить. Чел через эту сагу уже взаимодействует с агрегатом параграфа что бы покрыть все эти мерзские эдж кейсы что сообщение о апруве пришло аккурат с таймаутом
источник

SP

Sergey Protko in Software Design/Architecture/Zen
тут только вот момент с тем что приоритет книги с минимальным прогрессом все портит. ну то есть это тупо очередь параграфов...
источник

NI

Nikita Ilin in Software Design/Architecture/Zen
Sergey Protko
ну вот я б на сагах делал)))

Приходит сообщение мол "дай следующий параграф" и я их складываю в распределительную шляпу сагу. Та следит за тем что бы у нее был пул параграфов которые можно выдавать. Челу назначился параграф - запускаем отдельную сагу для него которая повесит себе таймаут через 10 минут освободить. Чел через эту сагу уже взаимодействует с агрегатом параграфа что бы покрыть все эти мерзские эдж кейсы что сообщение о апруве пришло аккурат с таймаутом
Нельзя заранее сформировать пул параграфов, т.к. ты не знаешь, какие пользователи придут
источник

NI

Nikita Ilin in Software Design/Architecture/Zen
Либо я не понял, что значит пул параграфов
источник

SP

Sergey Protko in Software Design/Architecture/Zen
Nikita Ilin
Нельзя заранее сформировать пул параграфов, т.к. ты не знаешь, какие пользователи придут
так, а пользователи... от них что-то зависит? я чет не увидел этого в условиях. По описанию больше как от пользователей распределение параграфов не зависит - зависит что бы уникально и что бы каждый параграф апрувило N человек
источник

NI

Nikita Ilin in Software Design/Architecture/Zen
Sergey Protko
так, а пользователи... от них что-то зависит? я чет не увидел этого в условиях. По описанию больше как от пользователей распределение параграфов не зависит - зависит что бы уникально и что бы каждый параграф апрувило N человек
Я про то что если пришёл пользователи 1,2,3, то для них параграфы могут быть не те, что для 4,5,6
источник