←back to thread

378 points rbanffy | 1 comments | | HN request time: 0.319s | source
Show context
teagee ◴[] No.46211038[source]
Any code or blog written by Adam is worth spending some time on.

It will be interesting to see how the tasks framework develops and expands. I am sad to see the great Django-Q2 lumped in with the awful Celery though.

replies(9): >>46211810 #>>46212076 #>>46212142 #>>46212219 #>>46212861 #>>46215681 #>>46215766 #>>46216187 #>>46217127 #
tmarice ◴[] No.46216187[source]
Celery is the worst background task framework, except for all the others.

There are bugs and issues, but because so many people are using it, you’re rarely the first to stumble upon a problem. We processed double-digit millions of messages daily with Celery + RabbitMQ without major obstacles. Regardless of what people say, it should be your first go-to.

replies(2): >>46217972 #>>46219476 #
1. formerly_proven ◴[] No.46219476[source]
Celery has way too much magic crammed into it, it is very annoying to debug, and produces interesting bugs. Celery is/was also a "pickle-first" API and this almost always turns out to be the wrong choice. As a rule of thumb, persisting pickles is a really bad idea. Trying to hide IPC / make-believe that it's not there tends to be a bad idea. Trying to hide interfaces between components tends to be a bad idea. Celery combines all of these bad ideas into one blob. The last time I looked the code was also a huge mess, even for old-guard-pythonic-code standards.