Untuk ' cukup ' men-debug Seledri dari bawah Windows, ada beberapa cara seperti:> celery worker --app=demo_app.core --pool=solo --loglevel=INFO
Tetapi, pada kenyataannya, untuk pengembangan normal, Anda memerlukan sistem Unix. Jika Anda tidak memiliki kesempatan untuk menggunakannya sebagai penduduk asli, maka itu layak dipertimbangkan ...) Ya, jujur saja, selalu ada jalan keluar dan ini adalah Docker, serta WSL. Jika Anda menggunakan IDE "keren" seperti PyCharm, maka semuanya menjadi lebih rumit, karena ketika menggunakan interpreter dengan sumber dari WSL, setelah menginstal paket melalui pip, Anda harus memperbarui kerangka proyek secara manual karena masalah pengindeksan.Tetapi dengan Docker, semuanya berbeda. Untuk manajemen yang keren, kita akan memerlukan Windows 10 Pro, karena versi Home tidak mendukung virtualisasi.Sekarang instal dan uji Docker . Setelah ini terjadi di baki, ikon yang sesuai akan muncul.
Selanjutnya, kami membuat dan menjalankan proyek di Django. Di sini saya menggunakan versi 2.2. Akan ada struktur yang mirip dengan ini:
Setelah kami menginstal Celery dan Redis sebagai broker.Sekarang tambahkan beberapa kode untuk memeriksa:
CELERY_BROKER_URL = 'redis://demo_app_redis:6379'
CELERY_ACCEPT_CONTENT = ['json']
CELERY_TASK_SERIALIZER = 'json'
from __future__ import absolute_import, unicode_literals
import os
from celery import Celery
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'core.settings')
app = Celery('core')
app.config_from_object('django.conf:settings', namespace='CELERY')
app.autodiscover_tasks()
from __future__ import absolute_import, unicode_literals
from .celery import app as celery_app
__all__ = ('celery_app',)
Tambahkan aplikasi Django baru di mana tugas kita akan dan menambahkan file baru:
from celery.task import periodic_task
from datetime import timedelta
@periodic_task(run_every=(timedelta(seconds=5)), name='hello')
def hello():
print("Hello there")
Selanjutnya, buat Dockerfile dan docker-compose.yml di root proyek:# Dockerfile
FROM python:3.7
RUN pip install pipenv
RUN mkdir /code
WORKDIR /code
COPY Pipfile* /code/
RUN pipenv install --system --deploy --ignore-pipfile
ADD core /code/
# docker-compose.yml
version: '3'
services:
redis:
image: redis
restart: always
container_name: 'demo_app_redis'
command: redis-server
ports:
- '6379:6379'
web:
build: .
restart: always
container_name: 'demo_app_django'
command: python manage.py runserver 0.0.0.0:8000
volumes:
- .:/code
ports:
- '8000:8000'
celery:
build: .
container_name: 'demo_app_celery'
command: celery -A core worker -B
volumes:
- .:/code
links:
- redis
depends_on:
- web
- redis
Dan mulai!
Kami menunggu instalasi semua dependensi di lingkungan pipenv. Pada akhirnya, Anda akan melihat sesuatu seperti ini:
Itu berarti semuanya keren ! Anda dapat mengontrol dari baris perintah:
Seperti yang Anda lihat, 2 gambar yang dibuat dari satu Dockerfile memiliki satu ID.Tetapi Anda juga dapat mengelola wadah menggunakan GUI:
Dengan cara ini, Anda dapat dengan mudah menghidupkan / mematikan, memulai kembali, menghapus wadah.