django - 如何使用 redis 作为消息代理正确设置生产者 - 消费者方案并将结果存储在 postgresql / sqlite 中?
问题描述
我对 celery-redis 方案很陌生,但我正在尝试实现一个生产者-消费者https://github.com/SkyBulk/celery方案,类似于我的任务生产者是我的 Django 任务,然后是代理(Redis)使用 celery beat 用于任务调度程序,其中 Redis 可以适合此方案来存储我的任务,并且 celery worker 执行任务生产者(django 任务)或任何其他外部 djngo 并将这些任务的结果保存到 sqlite 或 postgresql(而不是调度程序的日志) )
问题。为什么我在 Redis 上一无所获?
INSTALLED_APPS = [
"django.contrib.admin",
"django.contrib.auth",
"django.contrib.contenttypes",
"django.contrib.sessions",
"django.contrib.messages",
"django.contrib.staticfiles",
"orders.apps.OrdersConfig",
]
CELERY_BROKER_URL = "redis://redis:6379/0"
CELERY_RESULT_BACKEND = "redis://redis:6379/0"
CELERY_BEAT_SCHEDULE = {
"sample_task": {
"task": "orders.tasks.sample_task",
'schedule': timedelta(seconds=2),
},
"send_email_report": {
"task": "orders.tasks.send_email_report",
"schedule": crontab(minute="*"),
},
}
日志
celery_1 | [2021-04-27 21:42:01,910: INFO/MainProcess] Received task: orders.tasks.sample_task[a50a9653-c141-4922-816a-67b9423bb110]
celery_1 | [2021-04-27 21:42:01,912: WARNING/ForkPoolWorker-3] each two seconds
celery_1 | [2021-04-27 21:42:01,913: INFO/ForkPoolWorker-3] Task orders.tasks.sample_task[a50a9653-c141-4922-816a-67b9423bb110] succeeded in 0.0017081940000025497s: None
celery_1 | [2021-04-27 21:42:03,910: INFO/MainProcess] Received task: orders.tasks.sample_task[567c8088-3de7-4876-a86f-ee418ff47ec5]
celery_1 | [2021-04-27 21:42:03,912: WARNING/ForkPoolWorker-3] each two seconds
celery_1 | [2021-04-27 21:42:03,913: INFO/ForkPoolWorker-3] Task orders.tasks.sample_task[567c8088-3de7-4876-a86f-ee418ff47ec5] succeeded in 0.0019250379999675715s: None
celery_1 | [2021-04-27 21:42:05,908: INFO/MainProcess] Received task: orders.tasks.sample_task[407d41a7-8b09-4760-94d8-9311f0e9222e]
celery_1 | [2021-04-27 21:42:05,909: WARNING/ForkPoolWorker-3] each two seconds
celery_1 | [2021-04-27 21:42:05,910: INFO/ForkPoolWorker-3] Task orders.tasks.sample_task[407d41a7-8b09-4760-94d8-9311f0e9222e] succeeded in 0.0009493900000165922s: None
celery_1 | [2021-04-27 21:42:07,910: INFO/MainProcess] Received task: orders.tasks.sample_task[87c00ebe-9353-46d9-9bd1-67c60280b937]
解决方案
推荐阅读
- sql - TSQL:如何根据单元格中的数字将一行拆分为多行
- python - 我怎样才能拥有它,以便每次在用 python 制作的 Discord 机器人上发送消息时添加 exp
- algorithm - 排列循环
- object - MarkLogic 是否支持 Object.values()?
- visual-studio-app-center - System.MissingMethodException:“找不到方法”:错误
- java - 如何获取 Observablelist 中的所有唯一属性并计算唯一属性?
- python - 在 ngram 上进行 Gensim doc2vec 培训
- matlab - MEX 找不到 VC++ 编译器
- php - 从字符串中的一组单词中查找单词的最佳方法是什么?
- angular - 将 observable 转换为 promise 好吗?