If Bunny can do its own error handling (and reconnecting, etc), I think it's fine if the run method essentially becomes just;

```
def run
   setup
   consume
```

where consume never ends, or whatnot.