SidekiqをAlgoliasearchと私のRailsアプリケーションで使用すると、奇妙な問題が発生します。Rails:ワーカーが失敗してメモリ使用量が増加する
# A post model
include AlgoliaSearch
algoliasearch if: :published?, enqueue: :trigger_sidekiq_worker do
attributes :title, :subtitle, :content, :cached_votes_score, :cached_votes_total
# the `searchableAttributes` (formerly known as attributesToIndex) setting defines the attributes
# you want to search in: here `title`, `subtitle` & `description`.
# You need to list them by order of importance. `description` is tagged as
# `unordered` to avoid taking the position of a match into account in that attribute.
searchableAttributes ['title', 'subtitle', 'unordered(content)']
# the `customRanking` setting defines the ranking criteria use to compare two matching
# records in case their text-relevance is equal. It should reflect your record popularity.
customRanking ['desc(cached_votes_score)', 'desc(cached_votes_total)']
end
private
def self.trigger_sidekiq_worker(record, remove)
::Algolia::Blog::PostsWorker.perform_async(record.id, remove)
end
ログ:その振る舞いは次のように意図されている場合
$ bundle exec sidekiq
m,
`$b
.ss, $$: .,d$
`$$P,d$P' .,md$P"'
,$$$$$bmmd$$$P^'
.d$$$$$$$$$$P'
$$^' `"^$$$' ____ _ _ _ _
$: ,$$: /___|(_) __| | ___| | _(_) __ _
`b :$$ \___ \| |/ _` |/ _ \ |//|/ _` |
$$: ___) | | (_| | __/ <| | (_| |
$$ |____/|_|\__,_|\___|_|\_\_|\__, |
.d$$ |_|
Signal TTIN not supported
Signal TSTP not supported
Signal USR1 not supported
Signal USR2 not supported
2017-04-25T18:50:30.134Z 5596 TID-c0loo INFO: Running in ruby 2.3.3p222 (2016-11-21 revision 56859) [i386-mingw32]
2017-04-25T18:50:30.134Z 5596 TID-c0loo INFO: See LICENSE and the LGPL-3.0 for licensing details.
2017-04-25T18:50:30.135Z 5596 TID-c0loo INFO: Upgrade to Sidekiq Pro for more features and support: http://sidekiq.org
2017-04-25T18:50:30.136Z 5596 TID-c0loo INFO: Booting Sidekiq 5.0.0 with redis options {:url=>nil}
2017-04-25T18:50:30.138Z 5596 TID-c0loo INFO: Starting processing, hit Ctrl-C to stop
2017-04-25T18:50:30.207Z 5596 TID-1nla70 Algolia::Blog::PostsWorker JID-262b2f8613a197637d05caf3 INFO: start
2017-04-25T18:50:30.539Z 5596 TID-1nla70 Algolia::Blog::PostsWorker JID-262b2f8613a197637d05caf3 INFO: fail: 0.333 sec
2017-04-25T18:50:30.540Z 5596 TID-1nla70 WARN: {"context":"Job raised exception","job":{"class":"Algolia::Blog::PostsWorker","args":[1,false],"retry":true,"queue":"default","jid":"262b2f8613a197637d05caf3","created_at":1493146072.768356,"enqueued_at":1493146072.768356,"error_message":"Couldn't find Blog::Post with 'id'=1","error_class":"ActiveRecord::RecordNotFound","failed_at":1493146230.538659,"retry_count":0},"jobstr":"{\"class\":\"Algolia::Blog::PostsWorker\",\"args\":[1,false],\"retry\":true,\"queue\":\"default\",\"jid\":\"262b2f8613a197637d05caf3\",\"created_at\":1493146072.768356,\"enqueued_at\":1493146072.768356}"}
2017-04-25T18:50:30.541Z 5596 TID-1nla70 WARN: ActiveRecord::RecordNotFound: Couldn't find Blog::Post with 'id'=1
私にはわからないがalgoliaはそう私はsidekiqを起動するたびに
、それは自動的に私がAlgoliasearchで構成されているすべてのアクションを実行します私はそれを理解する限り、レコードが作成、削除、または更新された後にのみインデックスを付ける必要があります。
作業者が失敗した後、作業がやり直されるため、たくさんのメモリが蓄積されます。場合によっては、すべてのクラスと名前空間の名前が正しくても、私はLoadError
も取得します。
AlgoliaまたはSidekiqに問題があるかどうかわかりません。
私は[algoliasearch-rails](https://github.com/algoliia/algoliasearch-rails)gem(Sidekiqと一緒に使用しています)がidが '1'のレコードのインデックスを作成しようとしています私がSidekiqを始めるたびに。私はそれが問題を引き起こしていると思う - 私はGitHub [ここ](https://github.com/algolia/algoliasearch-rails/issues/229) – jonhue