実際はkeyrepeatは作動している。(例えば、$などはブラウザ上でキーリピートするし、Terminalでは問題なく動く)
この現象のときは、下記をターミナルを開いて打つ。
1 |
defaults write -g ApplePressAndHoldEnabled -bool false |
そして、再起動。
git branchを行ったり来たりしていてしっかり管理しないとlocalでゴミテーブルができるのでしっかりdownさせる。
db:migrate:status
でマイグレーションの状態を確認。
1 |
bundle exec rake db:migrate:status |
最初の数列をコピペしてそのファイルだけ戻す。
1 |
bundle exec rake db:migrate:down VERSION=20190611235049 |
その後必要ならSQLでmigrationエントリを消す
1 2 |
rails dbconsole > delete from schema_migrations where version = '20190611235049'; #sqlite3 |
DelayedJobと比べると使い方が少し違うので注意が必要。
config/initializers/sidekq.rb
に下記を追加(存在しない場合は作成)。これで毎回performを書かなくて良い。
1 |
Sidekiq::Extensions.enable_delay! |
これで、User.delay.my_method
が使える!
https://github.com/mperham/sidekiq/wiki/Delayed-extensions
インスタンスメソッドでも一見動いたので大丈夫かと思ったが実際運用してみるとだめだった。クラスメソッドでWrapして使いましょう。よく見ると太字でだめと書かれている。
I strongly recommend avoiding delaying methods on instances. This stores object state in Redis which can get out of date, causing stale data problems.
それ用のライブラリが別途あるのでそれを使用。スタティックなQueue使いにくい。。ユーザ毎にキューを用意したい。。
https://stackoverflow.com/questions/20133346/how-can-i-create-sidekiq-queues-with-variable-names-at-runtime