草庐IT

celery_worker

全部标签

python - 从python多处理模块中的进程池中获取 worker 数

我正在尝试想办法直接从Python中的multiprocessing.Pool类的实例中获取进程数。有办法吗?文档没有显示任何相关内容。谢谢 最佳答案 您可以使用_processes属性:>>>importmultiprocessing>>>pool=multiprocessing.Pool()>>>pool._processes8multiprocessing.cpu_count()的返回值相同除非您在创建Pool对象时指定了进程数。>>>multiprocessing.cpu_count()8

python - 如何推迟执行 Celery 任务?

我有一个小脚本,可以将任务排入队列进行处理。该脚本进行大量数据库查询以获取应排队的项目。我面临的问题是,celeryworker一旦被脚本排队就开始接收任务。这是正确的,这也是celery应该工作的方式,但这通常会导致我的脚本和celeryworker之间出现死锁。有没有一种方法可以将脚本中的所有任务排入队列,但延迟执行直到脚本完成或直到固定的时间延迟?我在celery或django-celery的文档中找不到这个。这可能吗?目前,作为一种快速修复,我考虑过将所有要处理的项目添加到一个列表中,当我的脚本执行完所有查询后,我可以简单地遍历该列表并将任务排入队列。也许这可以解决问题,但是当

python - celery 任务和自定义装饰器

我正在使用django和celery(django-celery)开发一个项目。我们的团队决定将所有数据访问代码包装在(app-name)/manager.py中(而不是像django那样包装到管理器中),并让代码进入(app-name)/task.py只处理用celery组装和执行任务(所以我们在这一层没有djangoORM依赖)。在我的manager.py中,我有这样的东西:defget_tag(tag_name):ctype=ContentType.objects.get_for_model(Photo)try:tag=Tag.objects.get(name=tag_name)

python - 如何使用 Celery 守护进程自动重新加载任务模块?

我正在使用Fabric部署一个Celery代理(运行RabbitMQ)和多个Celeryworker,其中celeryd通过supervisor守护。我一辈子都想不出如何在不重启服务器的情况下重新加载tasks.py模块。/etc/supervisor/conf.d/celeryd.conf[program:celeryd]directory=/fab-mrv/celerydenvironment=[RABBITMQcrendentialshere]command=xvfb-runceleryd--loglevel=INFO--autoreloadautostart=trueautor

RuntimeError: DataLoader worker (pid(s) 17016, 18312) exited unexpectedly

RuntimeError:DataLoaderworker(pid(s)17016,18312)exitedunexpectedly这个错误通常是由于DataLoader中的一个或多个worker进程crash引起的,原因可能是许多不同的问题,例如内存不足、文件路径错误或其他系统问题。以下是一些解决方法:1.减少batch_size:减少batch_size可能会减少内存使用量,从而减少DataLoader进程crash的可能性。2.增加num_workers:增加num_workers可能会增加DataLoader的并行性,从而减少DataLoader进程crash的可能性。但是,要注意不要

python - 你应该在哪里更新 celery 设置?在远程 worker 或发件人?

您应该在哪里更新celery设置?在远程工作人员还是发件人?例如,我有一个使用Django和Celery的API。API通过代理(RabbitMQ)将远程作业发送给我的远程工作人员。工作人员正在运行python脚本(不使用Django),有时这些工作会产生子任务。我已经在双方(发件人和工作人员)上创建了celery设置,即他们都需要设置BROKER_URL。但是,假设我想添加设置CELERY_ACKS_LATE=True,我应该将此设置添加到哪一端?每个远程worker或发送者(API)?API和远程worker都连接到同一个Broker,每个都以不同的方式启动celery。API通过

python - 你应该在哪里更新 celery 设置?在远程 worker 或发件人?

您应该在哪里更新celery设置?在远程工作人员还是发件人?例如,我有一个使用Django和Celery的API。API通过代理(RabbitMQ)将远程作业发送给我的远程工作人员。工作人员正在运行python脚本(不使用Django),有时这些工作会产生子任务。我已经在双方(发件人和工作人员)上创建了celery设置,即他们都需要设置BROKER_URL。但是,假设我想添加设置CELERY_ACKS_LATE=True,我应该将此设置添加到哪一端?每个远程worker或发送者(API)?API和远程worker都连接到同一个Broker,每个都以不同的方式启动celery。API通过

用于运行异步请求的 Python Celery 与线程库

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭8年前。Improvethisquestion我正在运行一个解析大量数据的python方法。由于时间密集,我想在单独的线程上异步运行它,以便用户仍然可以访问网站/用户界面。如果用户退出站点,使用“fromthreadingimportthread”模块的线程会终止还是会继续在服务器上运行?对于这样的事情,使用Celery与简单地使用线程模块相比有什么优势?

用于运行异步请求的 Python Celery 与线程库

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题?更新问题,以便editingthispost可以用事实和引用来回答它.关闭8年前。Improvethisquestion我正在运行一个解析大量数据的python方法。由于时间密集,我想在单独的线程上异步运行它,以便用户仍然可以访问网站/用户界面。如果用户退出站点,使用“fromthreadingimportthread”模块的线程会终止还是会继续在服务器上运行?对于这样的事情,使用Celery与简单地使用线程模块相比有什么优势?

带有 celery 的 Python Flask 在应用程序上下文之外

我正在使用pythonFlask构建一个网站。一切顺利,现在我正在尝试实现celery。在我尝试使用celery中的flask-mail发送电子邮件之前,一切都很顺利。现在我收到“在应用程序上下文之外工作”错误。完整的回溯是Traceback(mostrecentcalllast):File"/usr/lib/python2.7/site-packages/celery/task/trace.py",line228,intrace_taskR=retval=fun(*args,**kwargs)File"/usr/lib/python2.7/site-packages/celery/t