草庐IT

celery_worker

全部标签

python - 在一台机器上的 celery worker 之间共享内存区域

我想在celery中的工作节点之间共享小块信息(例如缓存的授权token、统计信息等)。如果我在我的任务文件中创建一个全局变量,它对每个工作人员都是唯一的(我的工作人员是进程,并且有1个任务/执行的生命周期)。最佳做法是什么?我是否应该在外部保存状态(DB),创建一个老式的共享内存(由于celery中不同的池实现可能很困难)?提前致谢! 最佳答案 我终于找到了一个像样的解决方案——corepythonmultiprocessing-Manager:frommultiprocessingimportManagermanag=Manag

python - Celery 第一步 - result.get() 超时错误

我在这里学习Celery第一步教程:http://celery.readthedocs.org/en/latest/getting-started/first-steps-with-celery.html#keeping-results我按照原样使用RabbitMQ学习教程。当我执行result.get(timeout=1)时,它显示超时错误,即使它是一个简单的添加操作,我可以看到工作人员正在运行并在另一个中生成正确的结果(8)窗口(venv)C:\Volt\celerytest>ipythonPython2.7.6(default,Nov102013,19:24:18)[MSCv.1

python - Django-Celery:未创建 djkombu_queue 表

编辑2如果有人可以发布架构应该是什么,我会非常高兴!我只需要知道表名和列名!我正在学习本教程:http://www.caktusgroup.com/blog/2014/06/23/scheduling-tasks-celery/我已经成功地通过pip安装了django-celery。#settings.pyimportdjcelerydjcelery.setup_loader()BROKER_URL='django://'INSTALLED_APPS=('django.contrib.admin','django.contrib.auth','django.contrib.conten

python - PyTorch 数据加载器中的 "number of workers"参数实际上是如何工作的?

如果num_workers为2,这是否意味着它会将2个批处理放入RAM并将其中的1个发送到GPU还是将3个批处理放入RAM然后将其中的1个发送到GPU?当worker数量高于CPU核心数量时,实际会发生什么情况?我试过了,效果很好,但它是如何工作的?(我以为我可以选择的最大worker数量是核心数)。如果我将num_workers设置为3,并且在训练期间GPU的内存中没有批处理,主进程是等待其工作人员读取批处理还是读取单个批处理(无需等待worker)? 最佳答案 当num_workers>0时,只有这些worker会检索数据,主进

python - celery - 链中的组

我想在链中使用一个组(或block),例如:chain(getRange.s(3),GROUP(),xsum.s())其中GROUP()是一组double()任务,即group(double(0),double(1),double(2))。HowtochainaCelerytaskthatreturnsalistintoagroup?中发布了类似的问题但它没有解释如何将输出从组传递到链中的下一个任务。@taskdefgetRange(x):returnrange(x)@taskdefdouble(nr):returnnr*2@taskdefxsum(list):returnsum(li

python - 使用 Python、Flask 和 Celery 的并发异步进程

我正在开发一个小型但计算密集型的Python应用程序。计算密集型工作可以分解成几个可以同时执行的部分。我正在尝试确定一个合适的堆栈来完成此任务。目前我计划在Apache2+WSGI上使用Flask应用程序和Celery作为任务队列。在下面,如果有3个或更多worker可用,a_long_process()、another_long_process()和yet_another_long_process()是否会同时执行?Flask应用程序会在进程执行时被阻塞吗?来自Flask应用:@myapp.route('/foo')defbar():task_1=a_long_process.del

python - 如果其中一项任务失败,Celery 链就会中断

如果其中一项任务失败导致整个链断裂,Celery链还有什么意义?!!我有这个Celery链:res=chain(workme.s(y=1111),workme2.s(2222),workme3.s(3333),)()我让workme2像这样重试失败了:@celery.task(default_retry_delay=5,max_retries=10,queue="sure")defworkme2(x,y):#try:try:printstr(y)sleep(2)printstr(x)##addinganyconditionthatmakesthetaskfailifx!=None:ra

Celery 任务中每个查询的 Python cassandra-driver OperationTimeOut

我在celery任务中异步执行的每个插入查询(小查询)都有问题。在同步模式下,当我插入时一切都很好,但是当它在apply_async()中执行时,我得到这个:OperationTimedOut('errors=errors=errors={},last_host=***.***.*.***,last_host=None,last_host=None',)回溯:Traceback(mostrecentcalllast):File"/var/nfs_www/***/env_v0/local/lib/python2.7/site-packages/celery/app/trace.py",l

python - celery 任务不会在 Django 测试中抛出异常

我的Django测试中包含几个celery任务。不幸的是,通过.delay()调用任务时不会抛出异常。我正在设置CELERY_ALWAYS_EAGER为真。tasks.pyimportceleryappasapp@app.task()defexception_task():print'CELERY_ALWAYS_EAGER:',app.conf['CELERY_ALWAYS_EAGER']raiseException('foo')测试.pydeftest_exception_in_task(self):fromtasksimportexception_taskexception_tas

python - 区分celery、kombu、PyAMQP和RabbitMQ/ironMQ

我想将图像上传到S3服务器,但在上传之前我想生成3种不同大小的缩略图,我希望它在请求/响应周期之外完成,因此我使用的是celery。我已经阅读了文档,这是我的理解。如果我错了,请纠正我。Celery可帮助您在请求响应周期之外管理任务队列。还有一个叫做carrot/kombu的东西——它是一个django中间件,用于打包通过celery创建的任务。然后是第三层PyAMQP,它促进了胡萝卜与代理的通信。例如。RabbitMQ、AmazonSQS、ironMQ等经纪人位于不同的服务器上并为您做事。现在我的理解是-如果多个用户同时上传图片,celery会将调整大小排队,并且实际上会在ironM