feat: alter create user to also create an account with 1000 as amount#7
feat: alter create user to also create an account with 1000 as amount#7
Conversation
| Logger.info("User successfully inserted", email: inspect(user.email)) | ||
| {:ok, user} | ||
|
|
||
| {:error, %{errors: [email: {"has already been taken", _}]}} -> |
There was a problem hiding this comment.
Osh, esse caso de erro ainda pode acontecer, não?
There was a problem hiding this comment.
Provavelmente o erro vai estourar no controller qnd acontecer
There was a problem hiding this comment.
Siimm, vou refazer o controller namoral agora
|
|
||
| create(unique_index(:accounts, [:account_number])) | ||
|
|
||
| execute "ALTER SEQUENCE accounts_account_number_seq START with 10000 RESTART" |
There was a problem hiding this comment.
Tem um problema em expor numeros sequenciais publicamente q eh revelar coisas como: quantidade de contas no banco e velocidade em que elas são abertas. No geral, é preferível usar números aleatórios mas não precisa mudar
There was a problem hiding this comment.
Eu pensei nisso, mas fiquei com duvida de como faria isso na aplicação. Pois se gerar um número randomico que já exista no banco, ele iria ficar tentando várias vezes até conseguir um número vago (isso quando tiver muitos registros de account number). Tem alguma sugestão para isso?
There was a problem hiding this comment.
Hoje acontece conflito e a gente retenta e tem resolvido so far. Com 6 digitos são 1 milhão de contas, demora atéo conflito virar um problema.
Mas temos uma todo pra resolver isso inclusive. O jeito que pensei é gerar tds os numeros possiveis (até x digitos) e subtrair os existentes numa query (da pra fzr no postgres essa geracao e subtracao), cachear esses numeros e ir tirando aleatoriamente da lista. O cache pode durar alguns minutos pra nao precisar ir no banco toda vez gerar essa lista. Se o cache for numa storage externa tipo redis nem precisa ir no banco de novo, só usar ele pra armazenar essa pool de contas disponiveis
There was a problem hiding this comment.
É nois, Vou tentar gerar um novo concorrente de peso aqui então.
Create following files: