This tool is divided in two programs.
blenderenqueue.py moves a blender file to the central fileserver and adds the
file to the rabbitmq queue for rendering. On each render node you start
blenderworker.py and it receives one
task from the rabbitmq server and renders it using blender.
This program assumes that:
- Blender is installed on the render node
- The enqueue and worker tool have access to shared storage
- The enqueue and worker tool have access to a rabbitmq server
$ git clone https://github.com/MartijnBraam/blendqueue.git $ pip install pika
$ apt get install rabbitmq
$ apt-get install blender $ pip install pika $ git clone https://github.com/MartijnBraam/blendqueue.git
Both tools read their config from blenderqueue.cfg in the current directory by default. Override this with the --configfile= parameter
[rabbitmq] server=127.0.0.1 username=guest password=guest port=5672 virtualhost=%%2f #this is a config-escaped urlencoded / [storage] path=/mnt/storage/rabbit/blender
Start the worker script on a worker node.
$ python3 blenderworker.py or $ python3 blenderworker.py --configfile=/etc/blenderqueue.cfg
Enqueue an blend file.
$ python blenderenqueue.py --start 1 --end 250 testrender test.blend
This will copy test.blend to the fileserver configured in the config file and add 250 tasks to the queue (one per frame). rabbitmq will now dispatch the tasks to all started blenderworkers.