草庐IT

celery_worker

全部标签

python - Celery v4 没有按预期路由任务

我正在将我的celeryworker从celeryv3更新到celeryv4,我的所有任务都是基于类的任务。Ihavemanuallyregisteredthetasks因为这是升级文档中的指示。问题出在任务路由中,我有以下任务:classRegisterTask(Task):routing_key='app_server.register'defrun(**params):whatever...我正在运行两个celeryworker,一个在默认队列中,另一个在注册队列中,如下所示:#DefaultWorkercelery-Aapp_serverworker--loglevel=inf

python - 以 SQLite 作为代理的 Celery + Flask,调用任务时出错

我正在尝试让Flask与以SQLite作为后端的Celery一起工作。但是,使用以下代码:CELERY_BROKER_URL='sqla+sqlite:///'+os.path.join(basedir,'celery.db')defmake_celery(app):celery=Celery(app.import_name,broker=app.config['CELERY_BROKER_URL'])celery.conf.update(app.config)TaskBase=celery.TaskclassContextTask(TaskBase):abstract=Truedef

python - 如果参数和任务名称已经在服务器中排队,是否可以跳过委派 celery 任务?

假设我有这个任务:defdo_stuff_for_some_time(some_id):e=Model.objects.get(id=some_id)e.domanystuff()我是这样使用它的:do_stuff_for_some_time.apply_async(args=[some_id],queue='some_queue')我面临的问题是,有很多具有相同arg参数的重复性任务,这让队列陷入困境。只有当相同的参数和相同的任务不在队列中时才可以应用异步吗? 最佳答案 celery-singleton解决了这个需求警告:需要re

python - 关于将 celery 与带有远程存储的 sorl-thumbnails 一起使用的指示?

我很惊讶在搜索如何使用带有sorl-thumbnails和S3的celery任务时,除了“使用celery”我什么都没看到。问题:使用远程存储会在生成缩略图时造成大量延迟(对于包含许多缩略图的页面来说需要100秒以上),而缩略图引擎会从远程存储下载原始文件,处理它们,然后上传回s3。在sorl中设置celery任务的好地方在哪里,我应该叫什么?如果您有任何经验/想法,我们将不胜感激。我将开始挖掘Sorl的内部结构,以找到一个更有用的地方来延迟这项任务,但如果之前已经解决了这个问题,还有一些我很好奇的事情。立即返回什么图像?必须以某种方式告诉Sorl返回的图像不是真正的缩略图。当cele

python - Celery 和 SQLAlchemy - 此结果对象不返回行。已经自动关闭

我有一个连接到MySQL数据库的celery项目。其中一个表是这样定义的:classMyQueues(Base):__tablename__='accepted_queues'id=sa.Column(sa.Integer,primary_key=True)customer=sa.Column(sa.String(length=50),nullable=False)accepted=sa.Column(sa.Boolean,default=True,nullable=False)denied=sa.Column(sa.Boolean,default=True,nullable=Fals

python - celery 任务分组/聚合

我计划使用Celery来处理由我的主服务器事件触发的推送通知和电子邮件的发送。这些任务需要打开与外部服务器(GCM、APS、电子邮件服务器等)的连接。它们可以一次处理一个,也可以通过单个连接批量处理以获得更好的性能。通常会在短时间内分别触发这些任务的多个实例。例如,在一分钟内,可能有几十个推送通知需要发送给具有不同消息的不同用户。在Celery中处理这个问题的最佳方法是什么?似乎天真的方法是简单地为每条消息分配不同的任务,但这需要为每个实例打开一个连接。我希望有某种任务聚合器允许我处理,例如'所有未完成的推送通知任务'。有这样的东西吗?有没有更好的方法来解决这个问题,例如附加到事件任务

python - 为不同的 celery worker 分配不同的任务

我正在使用此命令运行我的服务器:celeryworker-Qq1,q2-c2这表明我的服务器将处理队列q1和q2上的所有任务,并且我有2个worker正在运行。我的服务器应该支持2个不同的任务:@celery.task(name='test1')deftest1():print"test1"time.sleep(3)@celery.task(name='test2')deftest2():print"test2"如果我将我的test1任务发送到q1队列并将test2任务发送到q2,两个工作人员都将同时运行任务。所以结果将是:test1test2test1test2...现在我需要的是我

3.2.0 版本预告!远程日志解决 Worker 故障获取不到日志的问题

ApacheDolphinScheduler3.2.0版本已经呼之欲出,8月中下旬,这个大版本就要和用户见面了。为了让大家提前了解到此版本更新的主要内容,我们已经制作了几期视频和内容做了大致介绍,包括《重磅预告!ApacheDolphinScheduler3.2.0新功能“剧透”》、《3.2.0版本预告!ApacheDolphinSchedulerAPI增强相关功能》。今天,我们来介绍另一个用户比较关心的新功能——Remotelogging(远程日志),看看是否能帮助你的工作变得更简单吧!https://www.bilibili.com/video/BV1U14y1q74N/?spm_id_f

python - celery 节拍在同一时间间隔组下安排多个任务

我正在尝试设置每分钟都运行的两个任务。有什么办法可以将它们组合在一起运行吗?我在celeryconfig.py中指定了CELERYBEAT_SCHEDULE,如下所示:CELERYBEAT_SCHEDULE={'every-minute':{'task':'tasks.add','schedule':crontab(minute='*/1'),'args':(1,2)},}所以如果我想运行两个任务,我会期待这样的事情吗?CELERYBEAT_SCHEDULE={'every-minute':{'task':['tasks.add','task.multiply'],'schedule'

python - celery 不采摘 CELERY_ALWAYS_EAGER 设置

我正在运行Django1.8+Celery4.0.2Celery配置良好,可以在redis后端本地运行我的Django任务。但是当我尝试使用CELERY_ALWAYS_EAGER=True设置时,此设置无效。其他设置不是这种情况,例如CELERY_TIMEZONE具体来说,在pdb中,我看到app.conf.task_always_eager是Falselib/python2.7/site-packages/celery/app/task.py(520)apply_async()SosomehowCELERY_ALWAYS_EAGERisnotpickedupandhasnoeffec