81得票2回答
Docker/Kubernetes + Gunicorn/Celery - 多个Workers还是多个Replicas?

我在想使用gunicorn和celery部署容器化的Django应用程序的正确方法是什么。 具体来说,这些进程中的每一个都有一种内置的垂直扩展方式,使用gunicorn的工作人员和celery的并发性。然后还有使用复制品进行扩展的Kubernetes方法。 还有将工作者设置为CPU的某个函数的...

76得票3回答
绑定(bind) = True关键字在celery中的含义是什么?

bind=True 在下面的 celery 代码中是什么意思?何时使用它,何时不使用?@app.task(bind=True) def send_twitter_status(self, oauth, tweet): try: twitter = Twitter(oau...

75得票2回答
Celery:何时应选择Redis作为消息代理而不是RabbitMQ?

我的粗略理解是Redis更适合需要内存键值存储功能的场景,但我不确定这与分布式任务有何关系? 这是否意味着如果我们已经在使用Redis进行其他操作,就应该将其用作消息代理?

75得票1回答
不同创建celery任务的方式有什么区别?

我很困惑于不同的创建celery任务的方法。表面上它们都能正常工作,那么有人能解释一下这些方法之间的区别吗? 1. from myproject.tasks import app @app.task def foo(): pass 2. from celery import...

72得票2回答
Rabbitmq或Gearman - 如何选择任务队列

在工作中,我们需要构建一个任务服务器来完成像发送电子邮件、生成PDF文件、处理数据等任务。显然,我们希望基于某种通用的队列系统进行构建。我熟悉Gearman,并且它正是试图解决的这个问题:将作业放入队列中,让工作者来提取它们。然而,我看到了很多关于Rabbitmq的提及,不清楚它在这种情况下是...

71得票11回答
如何将Celery与asyncio结合使用?

我如何创建一个包装器,使celery任务看起来像asyncio.Task?或者有没有更好的方法将Celery与asyncio集成? Celery的创建者@asksol在此处说: "将Celery作为异步I/O框架的分布式层很常见(小建议:将CPU密集型任务路由到预派生工作程序意味着它们不会...

70得票2回答
Celery:WorkerLostError:工作者意外退出:信号 9(SIGKILL)

我在我的Django应用程序中(在Elastic Beanstalk上)使用Celery和RabbitMQ来管理后台任务,并使用Supervisor将其变成守护进程。现在的问题是,我定义的其中一个定期任务失败了(在它正常工作了一周之后),我得到的错误信息是:[01/Apr/2014 23:04...

68得票3回答
将所有Celery任务的日志消息发送到单个文件。

我在想如何设置更具体的日志系统。我的所有任务都使用 logger = logging.getLogger(__name__) 作为一个模块级别的记录器。 我想让celery记录到“celeryd.log”,我的任务记录到“tasks.log”,但我不知道如何使其工作。使用django-...

68得票10回答
检测Celery是否可用/运行

我正在使用Celery管理异步任务。偶尔,Celery进程会崩溃,导致无法执行任何任务。我想检查Celery的状态,确保一切正常运行,如果检测到问题,向用户显示错误消息。根据Celery Worker文档,我似乎可以使用ping或inspect来实现这一点,但ping感觉像是 hacky的方式...

67得票2回答
在使用celery时,如何为特定任务设置时间限制?

我在Celery中有一个任务,正常情况下可能需要运行10,000秒。然而,我所有其他的任务都应该在不到1秒钟内完成。如何为故意长时间运行的任务设置时间限制,而不更改短时间运行的任务的时间限制?