【问题标题】:Celery. Create too many tasks芹菜。创建太多任务
【发布时间】:2021-05-30 08:36:17
【问题描述】:

我在本地计算机和远程计算机上运行相同的代码。我不明白为什么在本地情况下会启动一个工人和一个任务。在远程计算机的情况下,celery 创建了五个任务。

app.conf.beat_schedule = {
    "create_new_avatar": {
        "task": "telegram_user.tasks.telegram_change_avatar",
        "schedule": crontab(),
    }
}

我希望 celery 在一分钟内完成一项任务。

我跑了:celery worker -A config.celery_app -B -l info -n other --concurrency=1

本地计算机上的结果:

[tasks]
  . telegram_user.tasks.telegram_change_avatar

[2021-02-28 17:50:04,651: INFO/MainProcess] Connected to amqp://guest:**@127.0.0.1:5672//
[2021-02-28 17:50:04,672: INFO/MainProcess] mingle: searching for neighbors
[2021-02-28 17:50:05,591: INFO/Beat] beat: Starting...
[2021-02-28 17:50:05,676: INFO/Beat] Scheduler: Sending due task create_new_avatar (telegram_user.tasks.telegram_change_avatar)
[2021-02-28 17:50:06,064: INFO/MainProcess] mingle: all alone
[2021-02-28 17:50:06,102: INFO/MainProcess] celery@other ready.
[2021-02-28 17:50:06,119: INFO/MainProcess] Received task: telegram_user.tasks.telegram_change_avatar[827646b1-6587-4de9-b7b8-1fdc3f6a8d08]  
[2021-02-28 17:50:07,022: INFO/ForkPoolWorker-2] Connecting to 149.154.167.51:443/TcpFull...
[2021-02-28 17:50:07,299: INFO/ForkPoolWorker-2] Connection to 149.154.167.51:443/TcpFull complete!
[2021-02-28 17:50:08,323: INFO/ForkPoolWorker-2] Uploading file of 108247 bytes in 1 chunks of 131072
[2021-02-28 17:50:09,379: INFO/ForkPoolWorker-2] Uploading file of 108247 bytes in 1 chunks of 131072
[2021-02-28 17:50:10,602: INFO/ForkPoolWorker-2] Disconnecting from 149.154.167.51:443/TcpFull...
[2021-02-28 17:50:10,603: INFO/ForkPoolWorker-2] Disconnection from 149.154.167.51:443/TcpFull complete!
[2021-02-28 17:50:10,616: INFO/ForkPoolWorker-2] Avatar is changed in 2021-02-28 17:50:10.615904

但同样的东西在远程服务器上看起来不一样。

[tasks]
  . telegram_user.tasks.telegram_change_avatar

[2021-02-28 18:01:37,130: INFO/Beat] beat: Starting...
[2021-02-28 18:01:37,153: INFO/MainProcess] Connected to amqp://guest:**@127.0.0.1:5672//
[2021-02-28 18:01:37,182: INFO/MainProcess] mingle: searching for neighbors
[2021-02-28 18:01:37,250: INFO/Beat] Scheduler: Sending due task create_new_avatar (telegram_user.tasks.telegram_change_avatar)
[2021-02-28 18:01:38,238: INFO/MainProcess] mingle: all alone
[2021-02-28 18:01:38,256: INFO/MainProcess] celery@other ready.
[2021-02-28 18:01:38,271: INFO/MainProcess] Received task: telegram_user.tasks.telegram_change_avatar[e3690979-cd2a-4413-b5ad-f99a8e7cc44a]  
[2021-02-28 18:01:38,272: INFO/MainProcess] Received task: telegram_user.tasks.telegram_change_avatar[b872d117-b4c7-4538-8c38-d07ad1e16164]  
[2021-02-28 18:01:38,273: INFO/MainProcess] Received task: telegram_user.tasks.telegram_change_avatar[b0e1470e-7bb7-41c2-bf38-613399266e8c]  
[2021-02-28 18:01:38,273: INFO/MainProcess] Received task: telegram_user.tasks.telegram_change_avatar[290f86ce-5be9-4606-aa42-fe8c0ef55ebf]  
[2021-02-28 18:01:38,381: INFO/MainProcess] Received task: telegram_user.tasks.telegram_change_avatar[10138e04-6bf9-4ee3-a134-f771b4002b3e]  
[2021-02-28 18:01:39,647: INFO/ForkPoolWorker-2] Connecting to 149.154.167.51:443/TcpFull...
[2021-02-28 18:01:39,657: INFO/ForkPoolWorker-2] Connection to 149.154.167.51:443/TcpFull complete!
[2021-02-28 18:01:39,858: INFO/ForkPoolWorker-2] Uploading file of 102594 bytes in 1 chunks of 131072
[2021-02-28 18:01:39,938: INFO/ForkPoolWorker-2] Uploading file of 102594 bytes in 1 chunks of 131072
[2021-02-28 18:01:40,132: INFO/ForkPoolWorker-2] Disconnecting from 149.154.167.51:443/TcpFull...
[2021-02-28 18:01:40,133: INFO/ForkPoolWorker-2] Disconnection from 149.154.167.51:443/TcpFull complete!
[2021-02-28 18:01:40,143: INFO/ForkPoolWorker-2] Avatar is changed in 2021-02-28 18:01:40.143742

为什么要创建五个任务?怎么改?

【问题讨论】:

    标签: python django celery


    【解决方案1】:

    如果您使用-B 启动所有工作人员,那很可能是您的问题。 celery-beat 必须作为单例运行(例如,您只能为给定的代理运行一个 celery beat 实例)。

    【讨论】:

      【解决方案2】:
      celery -A proj purge
      

      知道了。如果有人能解释为什么会发生这种情况,我将非常感激。不幸的是,我不明白真正的原因。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-08-19
        • 2014-12-04
        • 1970-01-01
        • 1970-01-01
        • 2012-12-01
        • 2014-04-16
        • 2018-07-04
        • 2012-08-30
        相关资源
        最近更新 更多