- remove mypy config from makefile |
||
---|---|---|
.. | ||
install/systemd | ||
libretime_worker | ||
Makefile | ||
README.md | ||
pyproject.toml | ||
setup.py |
README.md
airtime-celery
airtime-celery is a Celery daemon for handling backend tasks asynchronously. Communication and the Celery results backend are both handled with amqp (RabbitMQ).
Installation
sudo python3 setup.py install
Each instance of airtime-celery has its own worker, and multiple instances can be run in parallel. Celery is thread-safe, so this parallelization won't cause conflicts.
Developers
To debug, you can run celery directly from the command line:
RMQ_CONFIG_FILE=${LIBRETIME_CONF_DIR}/airtime.conf celery -A libretime_worker.tasks worker --loglevel=info
This worker can be run alongside the service without issue.
You may want to use the setuptools develop target to install:
sudo python setup.py develop
You will need to allow the "airtime" RabbitMQ user to access all exchanges and queues within the /airtime vhost:
sudo rabbitmqctl set_permissions -p /airtime airtime .\* .\* .\*
Logging
By default, logs are saved to:
/var/log/airtime/airtime-celery[-DEV_ENV].log
Troubleshooting
If you run into issues getting Celery to accept tasks from Airtime:
- Make sure Celery is running ($ sudo service airtime-celery status).
- Check the log file (/var/log/airtime/airtime-celery[-DEV_ENV].log) to make sure Celery started correctly.
- Check your $LIBRETIME_CONF_DIR/airtime.conf rabbitmq settings. Make sure the settings here align with $LIBRETIME_CONF_DIR/$ENVIRONMENT/rabbitmq.ini.
- Check RabbitMQ to make sure the celeryresults and task queues were created in the correct vhost.
- Make sure the RabbitMQ user (the default is airtime) has permissions on all vhosts being used.