使用Django Celery进行数据清理
首先,需要在Django项目中安装Celery库和Redis或者RabbitMQ作为消息中间件。
安装Celery库,可以使用以下命令:
pip install celery
安装Redis,可以使用以下命令:
pip install redis
或者安装RabbitMQ,可以使用以下命令:
pip install kombu pip install amqp
接着,在Django项目的settings.py文件中进行如下配置:
CELERY_BROKER_URL = 'redis://localhost:6379/0' # Redis作为消息中间件 # 或者 CELERY_BROKER_URL = 'amqp://localhost//' # RabbitMQ作为消息中间件 CELERY_RESULT_BACKEND = 'redis://localhost:6379/0' CELERY_ACCEPT_CONTENT = ['json'] CELERY_TASK_SERIALIZER = 'json' CELERY_RESULT_SERIALIZER = 'json'
在项目中创建tasks.py文件,并编写需要异步执行的任务。例如,数据清理任务:
from celery import shared_task @shared_task def clean_data(name): print("Cleaning data for", name) # 清理数据的逻辑代码
在views.py中调用该任务:
from myapp.tasks import clean_data def my_view(request): # 调用数据清理任务 clean_data.delay("pidancode.com") # 异步执行 return HttpResponse("任务已启动")
在终端中启动Celery worker:
celery -A myproject worker -l info
这样,任务就能异步执行,而不会阻塞主线程。
相关文章