芹菜。创建太多任务
Celery. Create too many tasks
我 运行 我的本地计算机和远程计算机上的代码相同。我不明白为什么在本地情况下会启动一名工人和一项任务。对于远程计算机,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
为什么要创建五个任务?如何更改?
如果您使用 -B
启动所有工作程序,那很可能是您的问题。 celery-beat 必须 运行 作为一个单例(例如,对于给定的代理,您只能有一个 celery beat 运行ning 实例)。
celery -A proj purge
知道了。如果有人能解释为什么会这样,我会很grateful.Unfortunately,我不明白真正的原因
我 运行 我的本地计算机和远程计算机上的代码相同。我不明白为什么在本地情况下会启动一名工人和一项任务。对于远程计算机,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
为什么要创建五个任务?如何更改?
如果您使用 -B
启动所有工作程序,那很可能是您的问题。 celery-beat 必须 运行 作为一个单例(例如,对于给定的代理,您只能有一个 celery beat 运行ning 实例)。
celery -A proj purge
知道了。如果有人能解释为什么会这样,我会很grateful.Unfortunately,我不明白真正的原因