2012-08-17 15 views
5

kodu działa poprawnie z opóźnieniami pracy i podejmowaniu kolejce w tabeli delayed_jobs i pracowników są ich przetwarzania, ale wciąż jesteśmy coraz wyjątek na zniszczenie obiektuDelta Indeksowanie - Opóźnione Jobs nie działa

tutaj jest ślad

vendor/bundle/ruby/1.9.1/gems/riddle-1.5.1/lib/riddle/client.rb:639:in `recv' 
vendor/bundle/ruby/1.9.1/gems/riddle-1.5.1/lib/riddle/client.rb:639:in `block in request' 
vendor/bundle/ruby/1.9.1/gems/riddle-1.5.1/lib/riddle/client.rb:538:in `connect' 
vendor/bundle/ruby/1.9.1/gems/riddle-1.5.1/lib/riddle/client.rb:623:in `request' 
vendor/bundle/ruby/1.9.1/gems/riddle-1.5.1/lib/riddle/client.rb:226:in `run' 
vendor/bundle/ruby/1.9.1/gems/riddle-1.5.1/lib/riddle/client.rb:338:in `query' 
vendor/bundle/ruby/1.9.1/gems/thinking-sphinx-2.0.10/lib/thinking_sphinx/search.rb:414:in `block (2 levels) in populate' 
vendor/bundle/ruby/1.9.1/gems/activesupport-3.2.3/lib/active_support/notifications.rb:123:in `block in instrument' 
vendor/bundle/ruby/1.9.1/gems/activesupport-3.2.3/lib/active_support/notifications/instrumenter.rb:20:in `instrument' 
vendor/bundle/ruby/1.9.1/gems/activesupport-3.2.3/lib/active_support/notifications.rb:123:in `instrument' 
vendor/bundle/ruby/1.9.1/gems/thinking-sphinx-2.0.10/lib/thinking_sphinx/search.rb:518:in `log' 
vendor/bundle/ruby/1.9.1/gems/thinking-sphinx-2.0.10/lib/thinking_sphinx/search.rb:527:in `log' 
vendor/bundle/ruby/1.9.1/gems/thinking-sphinx-2.0.10/lib/thinking_sphinx/search.rb:413:in `block in populate' 
vendor/bundle/ruby/1.9.1/gems/thinking-sphinx-2.0.10/lib/thinking_sphinx/search.rb:568:in `call' 
vendor/bundle/ruby/1.9.1/gems/thinking-sphinx-2.0.10/lib/thinking_sphinx/search.rb:568:in `retry_on_stale_index' 
vendor/bundle/ruby/1.9.1/gems/thinking-sphinx-2.0.10/lib/thinking_sphinx/search.rb:411:in `populate' 
vendor/bundle/ruby/1.9.1/gems/thinking-sphinx-2.0.10/lib/thinking_sphinx/search.rb:176:in `method_missing' 
vendor/bundle/ruby/1.9.1/gems/thinking-sphinx-2.0.10/lib/thinking_sphinx/search_methods.rb:395:in `search_for_id' 
vendor/bundle/ruby/1.9.1/gems/thinking-sphinx-2.0.10/lib/thinking_sphinx/active_record.rb:268:in `delete_in_index' 
vendor/bundle/ruby/1.9.1/gems/thinking-sphinx-2.0.10/lib/thinking_sphinx/active_record.rb:348:in `block in toggle_deleted' 
vendor/bundle/ruby/1.9.1/gems/thinking-sphinx-2.0.10/lib/thinking_sphinx/active_record.rb:34 
. 
. 
. 
app/controllers/received_messages_controller.rb:142:in `destroy' 

Pytanie, czy opóźniona delta zadania została dodana, to dlaczego próbuje bezpośrednio trafić sfinksa myślącego?

Oto określić wskaźnik bloc

define_index do 
    if Rails.env.production? 
     set_property :delta => FlyingSphinx::DelayedDelta 
    else 
     set_property :delta => true 
    end 

    indexes message.subject 

    has user_id, read, created_at 

    where "users_user_messages.is_active = 'Y'" 

    end 

Odpowiedz

2

Co tu się dzieje jest to, że Thinking Sphinx jest sprawdzenie, czy obiekt istnieje w Sfinksa przed oznaczeniem go jako usunięte - a jedynym sposobem na to jest, aby szukać dla niego . Jest trochę błędów w obsłudze, które są wbudowane w Thinking Sphinx, które powinny złapać (i zignorować) błędy od Sphinx, więc nie jestem pewien, dlaczego widzisz wyjątki.

Czy możesz udostępnić opis błędu, który pojawia się przed śledzeniem stosu?

Co więcej, nie ma to związku z Opóźnionym zadaniem.