My Django development website with background processing via redis works locally, but doesn't work on heroku. My requirements.txt contains 'redis==2.7.2' and 'rq==0.3.2' and I spin up web=1 and worker=1 on heroku. I have the 'redistogo:nano' add-on. The instructions for verifying that it works on the heroku console don't work: there's no 'redis.set()' or 'redis.get()'. So I tried the code from Running Heroku background tasks with only 1 web dyno and 0 worker dynos as follows.
In settings.py:

It would help folk if you supplied your Procfile, as well as a description of "doesn't work". What doesn't work? What do the logs say? Perhaps add them to your question (heroku logs)
–
Jon MountjoyFeb 6 '13 at 11:11

When I went to try it again, to get logs to post, I got errors I hadn't seen before. It was missing the environment variable DJANGO_SETTINGS_MODULE. I fixed that with 'heroku config:add DJANGO_SETTINGS_MODULE=exim.settings' Then the worker couldn't find the uploaded file. I may need to use AWS S3 to store the file if it's not where the worker can see it. Still looking into it.
–
user2044195Feb 6 '13 at 23:29

I found this in a description of heroku's ephemeral filesystem: "During the dyno’s lifetime its running processes can use the filesystem as a temporary scratchpad, but no files that are written are visible to processes in any other dyno . . ." Since the worker is in another dyno, I'll have to use AWS S3 to store the uploaded files.
–
user2044195Feb 7 '13 at 4:12

I've created an AWS bucket and set up heroku with the key ID and the key, and I manually uploaded a file to the bucket. Heroku still can't find the file, although at least it's not telling me there's no such bucket and it's not denying access. I've tried 'mybucket.s3.amazonaws.com/myfile'; and 's3.amazonaws.com/mybucket/myfile';. Here's the heroku logs:
–
user2044195Feb 9 '13 at 1:36