RabbitMQ is just a message queue. Producers put messages and consumers get them on demand. You can only restrict access for specific queues via RabbitMQ's auth options.
As for deployment: yes, receive.py
needs to continuously run. It is Celery's job to do that. See the Workers Guide for info on running a worker.