
Anyway, I guess I have to stick to the appimage for now, and maybe look for a different task tool. Acutally I can't find another ticket from me here. Funnily, TaskCoach worked just fine under 20.04 at my computer.? (my second computer is not yet upgraded, still on 20.04, and I usually keep them on the same version) I can't remember if I did something to make it work. Thank you so far for that information, but facing the story of suffering of Mario, I won't try that workaround. The design is still one that nothing else out there fully covers. We might have more luck eventually getting someone to make a modern tool that includes all the features of Task Coach. But the only real answer is to get help updating everything to Python3. Maybe it can be updated to work with 22.04 even. deb was updated to not need that whole workaround. So to purge the entire queue workers must be stopped.I have a vague memory that maybe the. because the worker was stopped) the tasks will be re-sent by the broker to the next available worker (or the same worker when it has been restarted), so to properly purge the queue of waiting tasks you have to stop all the workers, and then purge the tasks using (). Messages that are not acknowledged are held on to by the worker until it closes the connection to the broker (AMQP server). After the worker has received a task, it will take some time until it is actually executed, especially if there are a lot of tasks already waiting for execution. I’ve purged messages, but there are still messages left in the queue?Īnswer: Tasks are acknowledged (removed from the queue) as soon as they are actually executed. Purge configured queue celery -A proj purge Purge named queue: celery -A proj amqp queue.purge $ sudo rabbitmqctl list_queues -p celery name messages consumers # Confirm messages is 0 $ python manage.py celery amqp queue.purge analytics $ sudo /etc/init.d/celeryd stop # Confim dead

$ ps -ef | grep analytics # Get the PID of the worker, not the root PID reported by celery Here's my process: $ sudo /etc/init.d/celeryd stop # Wait for analytics task to be last one, Ctrl-C 2 or higher is bad, and I get an email.Ĭelery purge offers to erase tasks from one of the broadcast queues, and I don't see an option to pick a different named queue. I detect "stuckness" by looking at the message count for the analytics queue, which should be 0 (finished analytics) or 1 (waiting for last night's analytics to finish). It needs to be re-written, but until then, when it gets stuck I kill the task, empty the queue, and try again. Occasionally, something will go wrong and it will get stuck waiting on the database.

The analytics task is a brute force tasks that worked great on small data sets, but now takes more than 24 hours to process.

I use multiple named queues for different purposes: $ sudo rabbitmqctl list_queues -p celery name messages consumers I found that celery purge doesn't work for my more complex celery config.
