【问题标题】:How to make some parts of code queue-specific in celery?如何在 celery 中制作特定于队列的某些部分代码?
【发布时间】:2014-08-16 08:24:02
【问题描述】:

我有两个包含 celery 任务定义的文件。它们中的每一个都包含特定队列的代码。其中一个导入 scikit-learn,因此对于 VPS 的有限内存来说有点消耗内存。当 celery 初始化时,它会执行两个文件来查找任务,并且每个 celery worker 都会导入 scikit-learn。有没有办法防止这种情况发生?

我已经尝试使用inspect来获取当前的活动队列并在这个worker消耗这个队列时继续,但我认为它在初始化时不起作用:

i = inspect(['celery@hostname'])
print i.active_queues()    # None

【问题讨论】:

    标签: python rabbitmq celery amqp


    【解决方案1】:

    我认为最好的方法是启动两个工人,让他们加载 2 个不同的应用程序并创建 2 个不同的队列。

    示例工作者从我的头顶启动 cmd:

    celery -A scikit -Q learning worker

    celery -A default -Q default worker

    这当然需要你添加任务路由(以便 scikit 任务进入学习队列,其他任务进入默认队列)。

    【讨论】:

      【解决方案2】:

      我能够通过清空 CELERY_IMPORTS 列表然后通过 cmd 包含来解决它

      celery -A proj worker -l info -Q first_queue -I proj.file1
      

      仅在 proj.file1 中查找任务。

      【讨论】:

        猜你喜欢
        • 2021-12-17
        • 1970-01-01
        • 1970-01-01
        • 2020-04-07
        • 2015-11-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-06-02
        相关资源
        最近更新 更多