Size: a a a

var chat = new Chat();

2020 March 04

E

Etki in var chat = new Chat();
давайте я еще повбрасываю

создавать какой-то там контекст к базе отдельно на каждый http-запрос - хуита, которая к тому же разваливается, стоит сделать шаг в другой тред
транзакционные запросы - как правило хуита, в 99% случаев достаточно запросов по айдишнику и оптимистичной блокировки
держать стейт сущностей, чтобы потом из этого найти измененные, чтобы из них создать запросы, чтобы потом их отправить одной пачкой - тоже хуита, хотя если очень нужны транзакции, то можно, конечно. но в этом случае вместо классического подхода в движок должен просто скармливаться какой-то Action, который вращается там до тех пор, пока не выиграет транзакцию или не исчерпается лимит повторов
источник

B

Bogdan in var chat = new Chat();
это самый простой способо рельизации без гемора)
источник

B

Bogdan in var chat = new Chat();
ксли недо что-то отдельно оптимизровать, то да
источник

A

Andrey in var chat = new Chat();
Etki
давайте я еще повбрасываю

создавать какой-то там контекст к базе отдельно на каждый http-запрос - хуита, которая к тому же разваливается, стоит сделать шаг в другой тред
транзакционные запросы - как правило хуита, в 99% случаев достаточно запросов по айдишнику и оптимистичной блокировки
держать стейт сущностей, чтобы потом из этого найти измененные, чтобы из них создать запросы, чтобы потом их отправить одной пачкой - тоже хуита, хотя если очень нужны транзакции, то можно, конечно. но в этом случае вместо классического подхода в движок должен просто скармливаться какой-то Action, который вращается там до тех пор, пока не выиграет транзакцию или не исчерпается лимит повторов
Тут согласен
источник

E

Etki in var chat = new Chat();
самый простой - это await ORM.persist(entity)
источник

B

Bogdan in var chat = new Chat();
Etki
давайте я еще повбрасываю

создавать какой-то там контекст к базе отдельно на каждый http-запрос - хуита, которая к тому же разваливается, стоит сделать шаг в другой тред
транзакционные запросы - как правило хуита, в 99% случаев достаточно запросов по айдишнику и оптимистичной блокировки
держать стейт сущностей, чтобы потом из этого найти измененные, чтобы из них создать запросы, чтобы потом их отправить одной пачкой - тоже хуита, хотя если очень нужны транзакции, то можно, конечно. но в этом случае вместо классического подхода в движок должен просто скармливаться какой-то Action, который вращается там до тех пор, пока не выиграет транзакцию или не исчерпается лимит повторов
в спринге там та-же тема только под капотом

EntityManager типо синглтон, но под капотом он использует ThreadLocalStorage для меджинга конекшенов
источник

E

Etki in var chat = new Chat();
> в спринге

именно поэтому-то я всю эту хуйню и ненавижу
источник

A

Andrey in var chat = new Chat();
Но у нас есть кейс. Транзакция через примерно 10 - 20 записей/запросов идет
источник

B

Bogdan in var chat = new Chat();
Etki
> в спринге

именно поэтому-то я всю эту хуйню и ненавижу
😇
источник

B

Bogdan in var chat = new Chat();
Andrey
Но у нас есть кейс. Транзакция через примерно 10 - 20 записей/запросов идет
в смысле "через" ?
источник

E

Etki in var chat = new Chat();
я пока толком не добрался до ASP.NET, но уже отсюда могу сказать, что такой поебени как в спринге там явно нет
источник

B

Bogdan in var chat = new Chat();
типо разные ХТТП запросы? и где-то ждет в фоне тарнзакция?
источник

B

Bogdan in var chat = new Chat();
попахиваает ораклом
источник

A

Andrey in var chat = new Chat();
Bogdan
в смысле "через" ?
Транзакция в течении запрософ/записей
источник

B

Bogdan in var chat = new Chat();
ну ХТТП запрос один на транзакцию? если да, то норм
источник

A

Andrey in var chat = new Chat();
Bogdan
ну ХТТП запрос один на транзакцию? если да, то норм
Да один
источник

A

Andrey in var chat = new Chat();
Но внутри много логики.
источник

B

Bogdan in var chat = new Chat();
ну в принципе это нормально
источник

A

Andrey in var chat = new Chat();
Там важна консистентность во время всего запроса
источник

E

Etki in var chat = new Chat();
Еще вброшу: в большинстве случаев надо не транзакции катать, а кидать в очередь команду на выполнение, типа "добавить комментарий с текстом Х как ответ к комментарию Ъ". А оно там в бэкграунде пусть разбирает. Заодно и запросы на чтение можно дедуплицировать.
источник