Rails "Devise Token Auth" медленно обновляется пользователем - PullRequest
1 голос
/ 20 февраля 2020

У меня есть приложение Rails с гемом "devise_token_auth". Я заметил очень медленное обновление SQL, когда срок действия маркера доступа истекает, и новый токен доступа сохраняется в User.

Я заметил, что таблица пользователей во время обновления заблокирована, но, глядя на код драгоценного камня, это не должно занять много времени. И у меня есть индекс в таблице пользователей. Все остальные запросы в приложении нормальные (быстрые).

Вот подробности этого запроса:

SELECT "users".* FROM "users" WHERE "users"."id" = $? LIMIT $? FOR UPDATE
Duration1,400 ms

Explain plan

Query planLimit (cost=0.29..8.31 rows=1 width=2598)
Query plan-> LockRows (cost=0.29..8.31 rows=1 width=2598)
Query plan-> Index Scan using users_pkey on users (cost=0.29..8.30 rows=1 width=2598)
Query plan Index Cond: ?

…ted-x.x.x/lib/attr_encrypted/adapters/active_record.rb:  11:in `reload'
…matapp/.rbenv/versions/x.x.x/lib/ruby/x.x.x/monitor.rb: 214:in `mon_synchronize'
…ollers/devise_token_auth/concerns/set_user_by_token.rb: 100:in `update_auth_header'

Есть идеи, что здесь происходит?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...