An open API service indexing awesome lists of open source software.

https://github.com/friskes/celery-starter

Django command to run celery (worker, beat, flower) with automatically reboot server after changing files
https://github.com/friskes/celery-starter

autoreload celery celery-beat celery-flower celery-worker django linux python windows

Last synced: 4 months ago
JSON representation

Django command to run celery (worker, beat, flower) with automatically reboot server after changing files

Awesome Lists containing this project

README

        

## Django command to run `celery (worker, beat, flower)` with automatically reboot server after changing files

| Project | | Status |
|-----------|:----|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| CI/CD | | [![Latest Release](https://github.com/Friskes/celery-starter/actions/workflows/publish-to-pypi.yml/badge.svg)](https://github.com/Friskes/celery-starter/actions/workflows/publish-to-pypi.yml) |
| Quality | | [![Coverage](https://codecov.io/github/Friskes/celery-starter/graph/badge.svg?token=vKez4Pycrc)](https://codecov.io/github/Friskes/celery-starter) |
| Package | | [![PyPI - Version](https://img.shields.io/pypi/v/celery-starter?labelColor=202235&color=edb641&logo=python&logoColor=edb641)](https://badge.fury.io/py/celery-starter) ![PyPI - Support Python Versions](https://img.shields.io/pypi/pyversions/celery-starter?labelColor=202235&color=edb641&logo=python&logoColor=edb641) ![Project PyPI - Downloads](https://img.shields.io/pypi/dm/celery-starter?logo=python&label=downloads&labelColor=202235&color=edb641&logoColor=edb641) |
| Meta | | [![types - Mypy](https://img.shields.io/badge/types-Mypy-202235.svg?logo=python&labelColor=202235&color=edb641&logoColor=edb641)](https://github.com/python/mypy) [![License - MIT](https://img.shields.io/badge/license-MIT-202235.svg?logo=python&labelColor=202235&color=edb641&logoColor=edb641)](https://spdx.org/licenses/) [![code style - Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/format.json&labelColor=202235)](https://github.com/astral-sh/ruff) |

## Benefits of using this cli
> 1. The ability to run up to three servers (worker, beat, flower) simultaneously in one terminal, instead of running by default in three different terminals.
> 2. Automatic reboot of these servers when your codebase changes.

## Install
1. Install package
```bash
pip install celery-starter
```

2. Add app name to `INSTALLED_APPS`
```python
INSTALLED_APPS = [
'celery_starter',
]
```

### Command to run the program:
```
python manage.py runcelery
```

Arguments can be passed in any order, it doesn't matter.

### Optional Arguments:
`-h` or `--help` Show help message.

`-w ` or `--worker ` Full command line to run worker or options that extend the default command line.

`-b ` or `--beat ` Full command line to run beat or options that extend the default command line.

`-f ` or `--flower ` Full command line to run flower or options that extend the default command line.

`-eb` or `--exclude_beat` Excludes the beat server at startup.

`-ef` or `--exclude_flower` Excludes the flower server at startup.

`-d` or `--debug` Displays information about successful/unsuccessful completion of processes.

#### To stopped program pressing the keyboard shortcut `CTRL+C`

### Examples of Commands
> default commands:

```shell
# worker cmd
# (WARNING) Note that the default pool is solo,
# because of this, all tasks will be performed sequentially,
# to get parallelism, install one of the libraries [gevent | eventlet]
# and redefine the default pool in cmd.
celery -A worker -E -l INFO -P solo

# beat cmd
celery -A beat --pidfile=celerybeat.pid -l INFO

# flower cmd
celery --broker=redis://localhost:6379// flower -A --url_prefix=flower
```

> valid commands:
```shell
# redefining the -A and -P parameter
# and adding a new --broker parameter to the default worker command
python manage.py runcelery -w "-A -P gevent --broker=redis://localhost:6379//"

# complete replacement of the default worker command with the passed command
python manage.py runcelery -w "celery -A worker"
```

#### Working with beat and flower commands works in a similar way.

## Contributing
We would love you to contribute to `celery-starter`, pull requests are very welcome! Please see [CONTRIBUTING.md](https://github.com/Friskes/celery-starter/blob/main/CONTRIBUTING.md) for more information.