The Ant
да просто в цикле создаю сущности, и чтобы сделать дтошку для ивента с идом нада сделать флаш сначала
Павел
The Ant
либо в коллекцию собирать, и после флаша ивенты делать. но мне не охота 2 цикла
Павел
А кажется понял, у тебя флашер принимает одну сущность и можно только ее кинуть в диспатчер?
Павел
Или нет...
Павел
Напиши код)
Nikolay
Напиши код)
У него автоинкрементный айдишник, который надо передать в ивент
The Ant
Напиши код)
вот пример с флашем в цикле, работает
Nikolay
Павел
The Ant
Напиши код)
вот код с вынесенным флешем за цикол. Приходится второй делать )
The Ant
Nikolay
Nikolay
причина?
Потому что доктрина может навернуться от нехватки памяти
The Ant
Павел
Павел
Как доктрина новернется от 50 транзакций по 1 сущности или 1 транзакция все 50. Они все равно все в памяти UOW
Nikolay
Почему?
Ну потому что не один раз такое было когда в цикле такое вместе с флашем, а потом ошибка entity manager closed
Павел
The Ant
Павел
@theantt я бы сделал без доп транзакции, вообще не понимаю зачем она тебе там, когда флаш сам по себе подразумевает транзакцию.
Зафлашил один раз, а потом собрал ids
Nikolay
Мб, ниразу не встречал
Память течет, даже в документации доктрины показано как батч инсерты или апдейты делать
The Ant
Павел
The Ant
Не понял поинта
ну оно 2 файла сохранит и крашнется, а потом снова их сделает
Павел
The Ant
хотя если флаш за циклом такого не будет
The Ant
да блин мне не нравится 2 цикла делать, какое-то дерьмо )
Nikolay
Павел
The Ant
а как?
The Ant
до флаша идов не будет
Павел
А зачем два
Цикл чтобы сделать сущнсти, а потом собрать ids после flush
The Ant
а ууид я чет не хочу
Павел
The Ant
Павел
Но в любом случае транзация с циклом флашей внутри хуже, минимум по БД, так как там закрываются и открываются Savepoint
The Ant
шанс хоть и маленький, но вероятность коллизии есть
The Ant
и надо часто по списку идов выводить записи, тоже шняга получается )
Nikolay
The Ant
потому что 500 ууидов куда вводить? в какое поле? через запятую
The Ant
как потом ссылку на этот датасет скинуть другому челу? я хз, дерьмо ууиды эти )
Юра
The Ant
м.б. snowflake id получше будет
The Ant
а чо нынче автоинкрементами вообще никто не пользуется чтоле?
The Ant
Vlad
ну, нет. ПК - юид, на некоторых сущностях есть еще код, тоже юник
Vlad
код более человекочитаемый просто
The Ant
типа как на ютабе?
Vlad
опередил
The Ant
такой код требует проверки на уник )
Vlad
юник индекс
The Ant
я делал такой, и коллизий ппц много
Vlad
я для проверки генерил 25 мультов кодов
The Ant
даже на 50к записей порой бывает
Vlad
ни одной коллизии
Павел
Павел
Понятно что возможно и при 1 записи
Vlad
это хуйня
The Ant
это хуйня
хз, в случае с циклом, транза зафейлится в таком случае
Nikolay
Павел
Vlad
симфони сперли реализацию генерации кодов у фейсбука
The Ant
stupidkitty 😏
да там много где светилось, я не шифруюсь )
Vlad
https://github.com/hhvm/hsl/blob/80a42c02f036f72a42f0415e80d6b847f4bf62d5/src/random/private.php#L16
The Ant
Vlad
ты можешь свой алфавит передать
Vlad
хоть из 2х, хоть из 10 символов
The Ant
Хз, имеет ли смысл тащить лишнюю зависимость, ради непонятной херни )
Vlad
можно спереть кусок кода
The Ant
рандом_инт вроде тоже позиционируется как мощный рандом, а нифига )