芹菜连接器

celery-connectors的Python项目详细描述


芹菜接头

芹菜 是处理来自消息队列代理(如redis或rabbitmq)的消息的极好框架。如果您有一个包含json或pickled消息的队列,需要使用和处理这些消息,那么希望这个存储库能够帮助您解决问题。

它有多个使用芹菜、芹菜bootsteps、kombu和kombu mixins设置工作发布者-订户消息传递工作流的示例。这些示例的重点是寻找一个起点,以优化高可用性+性能+降低消息丢失的风险(停靠的芹菜bootstep rabbitmq订户可以在90秒内用3个工人处理大约 100000条消息)。通过使用附带的Docker容器和附带的负载测试,您可以开始检查解决方案是否不会在停电期间半夜叫醒您。

下面的每个示例都可以作为docker容器运行,其中包含 编写目录中的docker compose文件。请注意,这些docker compose步骤是可选的,下面文档中的消费者计数仅适用于非dockerized存储库版本。

下面是json到芹菜ecomm中继的实际例子。通过使用docker compose,您可以使用容器监视工具对资源和吞吐量进行基准测试,以确定您的部署足迹并解决瓶颈。

https://raw.githubusercontent.com/jay-johnson/cellery-connectors/master//u images/cellery-connectors-json-to-cellery-relay-with-existing-ecomm-cellery-app.gif

我为什么在乎?

  • 您想从队列中读取json或pickled消息,并让一个框架处理所有现成的扩展和部署方面吗?
  • 是否需要一种不设置任务结果后端(mongo)的简单方法来读取队列?
  • 是否要将Windows Python客户端连接到后端Linux系统或群集?
  • 是否要通过SQS与所有AWS VPC后端通信?
  • 是否希望通过消息队列后端将python和非python技术粘合在一起?
  • 你想用python 2和python 3吗?

如何开始?

  1. 设置virtualenv

    如果您想使用python 2:

    virtualenv venv && source venv/bin/activate && pip install celery-connectors
    

    如果要使用python 3:

    virtualenv -p python3 venv && source venv/bin/activate && pip install celery-connectors
    
  2. 确认PIP已安装

    pip list | grep celery-connectors
    
  3. 启动容器

    # if you do not have docker compose installed, you can try installing it with:
    # pip install docker-compose
    start-redis-and-rabbitmq.sh
    

    或者,如果Docker版本和操作系统支持容器卷装载,则可以使用以下命令将redis和rabbitmq消息和数据持久化到磁盘:

    ./start-persistence-containers.sh
    
  4. 检查redis和rabbitmq容器是否正在运行

    docker ps
    CONTAINER ID        IMAGE                       COMMAND                  CREATED             STATUS              PORTS                                                                                                       NAMES
    913e8092dbde        mher/flower:latest          "/usr/local/bin/py..."   35 seconds ago      Up 35 seconds                                                                                                                   celflowerredis
    b6983a1316ba        rabbitmq:3.6.6-management   "docker-entrypoint..."   35 seconds ago      Up 34 seconds       4369/tcp, 5671/tcp, 0.0.0.0:5672->5672/tcp, 0.0.0.0:15672->15672/tcp, 15671/tcp, 0.0.0.0:25672->25672/tcp   celrabbit1
    52cb4c511d61        redis:4.0.5-alpine          "docker-entrypoint..."   35 seconds ago      Up 34 seconds       0.0.0.0:6379->6379/tcp, 0.0.0.0:16379->16379/tcp                                                            celredis1
    202bdaf70784        mher/flower:latest          "/usr/local/bin/py..."   35 seconds ago      Up 35 seconds                                                                                                                   celflowerrabbit
    

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
orm如何在Java中实现规范化映射?   java以编程方式修改Xtext生成的Mwe2工作流   java正在覆盖外部文件中的现有数据,如何停止?   java在ANTLR BNF语法符号中epsilon的等价物是什么?   java如何使用Hibernate@Anyrelated注释?   代码生成生成java类并在运行时加载它   java Maven无法在本地jar文件中收集依赖项   java NetBeans IDE 8.2不显示错误消息   java Selenium web驱动程序找不到元素   java如何修复“拒绝访问属性”invoke“”的权限?   JavaApacheJClouds,从比日期更早的blob中删除blob的最佳方法   java如何比较和排序树集中的项目?   使用JavaSpring和无头/解耦CMS   java使用swagercodegen在不同的类中生成端点   Java外部Keylistener没有响应