Merge pull request #1322 from jooola/feat/housekeeping

Housekeeping
This commit is contained in:
Kyle Robbertze 2021-09-02 18:59:04 +00:00 committed by GitHub
commit 1d33c037e3
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
19 changed files with 917 additions and 2009 deletions

View file

@ -1 +0,0 @@
include README.rst

View file

@ -0,0 +1,63 @@
# airtime-celery
airtime-celery is a [Celery](http://www.celeryproject.org/) daemon for handling backend tasks asynchronously.
Communication and the Celery results backend are both handled with amqp (RabbitMQ).
# Installation
```sh
sudo python setup.py install
```
Each instance of airtime-celery has its own worker, and multiple instances can be run in parallel.
[Celery is thread-safe](http://celery.readthedocs.org/en/latest/userguide/application.html), so this parallelization won't cause conflicts.
# Usage
This program must be run with sudo:
```sh
sudo service airtime-celery {start | stop | restart | graceful | kill | dryrun | create-paths}
```
# Developers
To debug, you can run celery directly from the command line:
```sh
cd /my/airtime/root/python_apps/airtime-celery
RMQ_CONFIG_FILE=${LIBRETIME_CONF_DIR}/airtime.conf celery -A airtime-celery.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:
```sh
cd /my/airtime/root/python_apps/airtime-celery
sudo python setup.py develop
```
You will need to allow the "airtime" RabbitMQ user to access all exchanges and queues within the /airtime vhost:
```sh
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:
1. Make sure Celery is running ($ sudo service airtime-celery status).
2. Check the log file (/var/log/airtime/airtime-celery[-DEV_ENV].log) to make sure Celery started correctly.
3. Check your $LIBRETIME_CONF_DIR/airtime.conf rabbitmq settings. Make sure the settings here align with $LIBRETIME_CONF_DIR/$ENVIRONMENT/rabbitmq.ini.
4. Check RabbitMQ to make sure the celeryresults and task queues were created in the correct vhost.
5. Make sure the RabbitMQ user (the default is airtime) has permissions on all vhosts being used.

View file

@ -1,65 +0,0 @@
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 python 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.
.. _Celery: http://www.celeryproject.org/
.. _Celery is thread-safe: http://celery.readthedocs.org/en/latest/userguide/application.html
Usage
=====
This program must be run with sudo:
$ sudo service airtime-celery {start | stop | restart | graceful | kill | dryrun | create-paths}
Developers
==========
To debug, you can run celery directly from the command line:
$ cd /my/airtime/root/python_apps/airtime-celery
$ RMQ_CONFIG_FILE=${LIBRETIME_CONF_DIR}/airtime.conf celery -A airtime-celery.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:
$ cd /my/airtime/root/python_apps/airtime-celery
$ 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:
1) Make sure Celery is running ($ sudo service airtime-celery status).
2) Check the log file (/var/log/airtime/airtime-celery[-DEV_ENV].log) to make sure Celery started correctly.
3) Check your $LIBRETIME_CONF_DIR/airtime.conf rabbitmq settings. Make sure the settings here align with
$LIBRETIME_CONF_DIR/$ENVIRONMENT/rabbitmq.ini.
4) Check RabbitMQ to make sure the celeryresults and task queues were created in the correct vhost.
5) Make sure the RabbitMQ user (the default is airtime) has permissions on all vhosts being used.