2012-01-05 13 views
30

Używam programu Celery 2.4.6 i django-selera 2.4.2.Dlaczego firma CeleryCAM nie współpracuje z usługą Amazon SQS?

Kiedy skonfigurować Seler użyć Amazon SQS za uchwałą w tej sprawie: Celery with Amazon SQS

nie widzę nic w tabeli celerycam w panelu administracyjnym. Jeśli przełożę się z powrotem na RabbitMQ, zadania zaczną się znowu pojawiać.

Mam dużo (teraz 40+) kolejek w SQS o nazwie coś takiego: "celeryev-92e068c4-9390-4c97-bc1d-13fd6e309e19", które wyglądają, jakby były powiązane (niektóre z starszych nawet mają wydarzenie w nich), ale nic nie pojawia się w bazie danych i nie widzę żadnych błędów w dzienniku celerycam.

Wszelkie sugestie na temat tego, co może być problemem i jak debugować to dalej, byłyby mile widziane.

+6

Nie znalazłem nic rozstrzygającego w tej sprawie, więc przeprowadziłem kilka testów, aby sprawdzić, które backend faktycznie obsługują celerycam. Kluczem do uzyskania pracy celerycam jest -E (wysyłanie zdarzeń) do selera. W krótkim teście wydaje się, że wysyłanie zdarzeń działa z RabbitMQ (oczywiście), współpracuje z Redis, NIE działa z SQS i NIE działa z backendem bazy danych Django dla Celery. –

+2

Jakieś dalsze szczęście z tym? Próbuję zbudować system oparty na selekcji/SQS i uderzać w ten sam problem. – edub

Odpowiedz

3

SQS jest ograniczoną implementacją szyny AMQP. Rozumiem, że nie obsługuje nadawania PUB/SUB, jak na przykład mówi królik-MQ, co jest konieczne, aby zdarzenia działały poprawnie. SNS zostało wprowadzone w celu wspierania nadawania, ale jest to oddzielny system.

Niektóre biblioteki/pakiety używają SimpleDB jako narzędzia do przechowywania wiadomości jako narzędzia do włamań do SQS, aby emulować prawidłowe zachowanie AMQP, ale najwyraźniej seler nie ma jeszcze pełnego hackowania.