草庐IT

celery_worker

全部标签

python - celery 任务在 redis 后端连接套接字超时时引发错误

我正在使用celery通过redis代理一个一个地运行任务,但是当我运行2个任务然后在完成第一个redis后给出第二个任务的超时套接字错误,这样第二个任务就会失败。File"/home/ubuntu/.virtualenvs/aide_venv/local/lib/python2.7/site-packages/celery/result.py",line194,ingeton_message=on_message,File"/home/ubuntu/.virtualenvs/aide_venv/local/lib/python2.7/site-packages/celery/back

redis - Acks_late : celery + redis broker/backend

我正在研究celery代码。一旦任务函数通过(task_trace)运行,就会调用acks_late。但是,在Redis中,一旦收到任务(即从Redis队列中弹出),RedisWorkerController就会为其创建一个任务请求。如果工作节点死亡,它如何重新入队? 最佳答案 如果消息没有被确认,则消息不会再次入队(如果工作人员死亡,这是不可能的。它们确实以未确认的形式存在于Redis中)。根据celery文档,Redis代理有一个visibilitytimeoutmechanism.因此,如果消息未在可见性超时内得到确认,我们应

python - 来自 worker 的 Heroku 数据库管理

想知道是否有人可以帮助我,或者至少指导我正确的方法。我目前有一个网络和一个正在运行的工作进程。我需要一个在测功机在线时全天候运行的任务,它的工作是访问数据库并通过根据当前时间戳检查每条记录的“过期”值来删除已过期的记录。我的worker.py文件:importosimportredisfromrqimportWorker,Queue,Connectionlisten=['high','default','low']redis_url=os.getenv('REDISTOGO_URL','redis://localhost:6379')conn=redis.from_url(redis_

ruby-on-rails - NameError:sidekiq worker 在生产中未初始化的常量,但在开发中有效

我正在使用sidekiq和redis设置后台任务。让它在开发中完全正常工作,但是在暂存站点上测试时我得到:NameError:uninitializedconstantInviteWorker::User/controllers/users_controller.rbclassUsersControllerparams[:user])[0]:@user=User.find_by_email(cookies[:h_email])user_id=@user.idcontent=params[:body]emails=params[:email].split(',')total_emails

django - 如何配置docker以将redis与celery一起使用

docker-compose.ymlversion:'3.1'services:redis:image:redis:latestcontainer_name:rd01ports:-'6379:6379'webapp:image:webappcontainer_name:wa01ports:-"8000:8000"links:-redisdepends_on:-rediscelery:build:.container_name:cl01command:celery-Aserverworker-linfodepends_on:-redis我也不觉得我理解链接和depends_on,我尝试了

python - 带有 redis 代理可见性超时的 celery

我正在尝试实现以下行为:使用celerybeat启动celery任务worker被杀新员工发起任务重新开始为此,我设置了acks_late=True标志和'visibility_timeout':30意味着如果任务在30秒内没有确认,则应将一个新任务添加到队列中出于某种原因,这不会发生 最佳答案 问题好像出在gevent上当我monkey.patch_all()重试机制将不起作用 关于python-带有redis代理可见性超时的celery,我们在StackOverflow上找到一个类似

python celery 的每项工作都高效吗?

我正在用pythonflask制作API服务器。在我的例子中,它是真正的生产级别,所以我在开发服务器时必须小心。经过google搜索,发现celery&redis适合做任务队列。所以我通过pip3install'celery[redis]'安装了celery&redis并定义了任务,然后运行。一切都很好,但我有一些问题。假设有用户模型。也许像这样的用户模型的CRUD。注册用户(带照片)删除用户获取单个用户个人认为celery&redis只需要Registeruser即可。因为上传照片需要很长时间,所以必须用异步处理。删除用户和获取单个用户只需查询数据库并检索它。所以不需要更长的时间。(

python - 通过 Celery 连接两个独立的项目

我有一个项目“A”(Django),我想在其中生成要发送给Celery代理的消息,例如Redis。在另一个项目“B”(同一台机器上的纯python)中,我想启动一个Celery服务器worker来监视代理中的消息并执行任务。任务在B中定义。当任务完成时,它们会将结果保存在redis中(也用作结果后端)。当响应准备好时,我希望django知道。这可能吗?我主要担心的是A不应该从B导入任务,所以我应该使用类似send_task('task_name')的东西。在实践中,我应该创建2个单独的celery实例,但只运行一个serverworker?实例1只发送消息和读取结果实例2注册将要执行的

python - Celery 与 Django 中的 Redis 代理 : tasks successfully execute, 但仍然存在太多持久的 Redis key 和连接

我们的Python服务器(Django1.11.17)使用Celery4.2.1和Redis作为代理(我们使用的pipredis包是3.0.1)。Django应用部署到Heroku,Celery代理使用Heroku的RedisCloud插件设置。我们拥有的Celery任务绝对应该在一分钟内完成(中位完成时间约为100毫秒),但我们看到Redis键和连接的持续时间比这长得多(最多24小时).否则,任务正在正确执行。可能发生了什么导致我们的Redis代理中出现这些持久键和连接?我们如何在Celery任务结束时清除它们?这是发生这种情况的RedisLabs屏幕截图(所有任务都应该已完成,因此

spring - 使用 Java、spring、redis 的作业队列和 Worker

我想创建Jobs和Workers并处理由REST请求创建的每个Jobs,我还想为单个工作设置多级workers。场景:我的客户将通过RESTAPI发布请求,每个REST请求都是耗时的作业将该请求作为新作业存储到数据库中,并将ID存储到redis中定义一个worker,它将从redis中提取ID处理作业并使该数据库记录完成是否有任何框架和技术或技术组合可用于在SpringMVC或JAXRSJersey上创建我的工作和工作人员。我已经使用PHP、LaravelQueue、LaravelHorizo​​n和Redis完成了完全相同类型的项目,但现在我需要使用JavaTechStack进行开发