Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Celery/CloudAMQP error in a Heroku Flask App

I'm running a Flask app on Heroku (on the free tier) and running into some trouble when scheduling tasks using apply_async. If I schedule more than two tasks, I get a long stacktrace with the exception:

AccessRefused(403, u"ACCESS_REFUSED - access to exchange 'celeryresults' in vhost 'rthtwchf' refused for user 'rthtwchf'", (40, 10), 'Exchange.declare')

The odd thing is the first two tasks (before restarting all of my processes) always seem to complete with no issue.

A little bit of search engine sleuthing leads me to https://stackoverflow.com/questions/21071906/celery-cannot-connect-remote-worker-with-new-username which makes it looks like a permissions issue, but I'd assume that the Heroku CloudAMPQ service would have taken care of that already.

Any advice is appreciated!

like image 445
Michael Marsh Avatar asked Feb 07 '14 17:02

Michael Marsh


1 Answers

I think your connections are exceeding 3 (free plan limit). Set the BROKER_POOL_LIMIT to 1 and it will work.

like image 199
Farshid Ashouri Avatar answered Oct 26 '22 05:10

Farshid Ashouri