草庐IT

celery_worker

全部标签

python celery : Update django model after state change

我设法找到了2个类似的主题来讨论这个问题,但不幸的是我无法从中得到最好的解决方案:UpdateDjangoModelFieldBasedOnCeleryTaskStatusUpdateDjangoModelFieldBasedOnCeleryTaskStatus我使用Django和Celery(+redis作为消息代理),我想在celery任务状态发生变化(从挂起->成功,挂起->失败)等时更新Django模型我的代码:importtimefromceleryimportshared_task@shared_task(name="run_simulation")defrun_simul

django - celery 没有连接到redis服务器

我有一个使用celery==4.2.1、redis==2.10.6、redis-server=4.0.9的django2.0.5应用程序。当我启动celeryworker时,我得到以下输出:--------------celery@octopusv4.2.1(windowlicker)----****--------*****--Linux-4.18.16-surface-linux-surface-x86_64-with-Ubuntu-18.04-bionic2018-10-3117:33:50--*-****----**----------[config]-**----------

Django + Celery 长期定时任务

我正在开发一个严重依赖Celery任务调度的Django应用程序,使用Redis作为后端。任务可以设置为长时间运行,也可以设置为几秒/分钟。我已经阅读了有关Redis可见性超时和时间增量大于可见性超时的调度任务的后果(我也在之前的项目中处理它),所以我很感兴趣是否有比我的解决方案是在需要执行“主”任务之前5分钟运行另一个“助手”任务,安排“主”任务在需要的时间内运行,将任务ID存储在数据库中,然后checkin“主”"task如果存储的任务ID是正在运行的任务。最后一部分(任务ID存储)是必需的,因为多次运行“助手”任务可能会产生很多“主要”任务实例,但使用这种方法每个任务都会有不同的

django - Celery 限速 : Is it possible to rate-limit a celery task differently based on a run-time parameter?

我想根据运行时确定的某些参数对Celery任务进行速率限制。例如:如果参数为1,则速率限制可能为100。如果参数为2,则速率限制可能为25。此外,我希望能够在运行时修改这些速率限制。celery是否提供了这样做的方法?我可以使用routing_key根据参数将任务发送到不同的队列,但celery似乎不支持队列级速率限制。一个可能的解决方案是在排队任务时使用eta,但我想知道是否有更好的方法来实现这一点。 最佳答案 Celery提供了一个内置的速率限制系统,但它的工作方式与大多数人期望的速率限制系统不同,并且它有几个限制。我在Redi

ruby-on-rails - Heroku 上停滞的 Resque Worker 监控

我在Heroku上使用Resque和HerokuRedis。Resqueworker们间歇性地停滞不前。没有错误;worker们只是什么都不做(看起来)。重新启动测功机可解决问题。目前,我不太关心解决问题的根本原因,而更感兴趣的是设置某种能够捕获这些问题的监控。我的Google技能在这个主题上让我失望了。推荐使用哪些工具和/或方法来监控ResqueWorker并在它们停止时提醒我? 最佳答案 其中一个最受欢迎的是godhttps://github.com/mojombo/godresque甚至在wiki上提到过它。另一个是monit

ruby - 在/workers : wrong number of arguments for 'exists' command 处请求运行时错误

当我查看resque-web(localhost)上的“workers”选项卡时出现运行时错误。其他一切正常。编辑:发生此错误时,我还有一些(3或4个)未知工作人员“不工作”。我认为他们应对错误负责,但我不明白他们是如何到达这里的。只有当我从上帝开始worker时才会发生你能帮我解决这个问题吗?我做错了什么吗?配置:Resque1.8.5作为SnowLeopard上rails2.3.8应用程序中的gemredis1.0.7/rack1.1/sinatra1.0/vegas0.1.7文件:client.rb位置:format_error_reply行:558回溯:*/Library/Ru

sinatra - resque worker 负载分配不公平

我有一个由ActiveRecord支持的ResqueJob,它将发布消息保存到数据库。有7个工作实例正在运行。我向我的sinatra应用程序发送了20K条记录。当我查询redis数据库时,我看到以下结果...redis>getresque:stat:processed:localhost:6929:default"5696"redis>getresque:stat:processed:localhost:6930:default"1"redis>getresque:stat:processed:localhost:6942:default"1"redis>getresque:stat:

redis - 安装 Celery/Redis 以在另一台服务器上运行任务的正确方法是什么?

Web服务器本身运行django。我希望网络服务器将实际任务委托(delegate)给另一台服务器。 最佳答案 首先,在远程服务器上设置您的Redis服务器。更改您的django配置以连接到此服务器。部署应用程序时,我建议使用fabric部署到您的网络服务器和工作服务器。它还应该处理重启逻辑。 关于redis-安装Celery/Redis以在另一台服务器上运行任务的正确方法是什么?,我们在StackOverflow上找到一个类似的问题: https://sta

python - django-celery redis 内存错误

我正在使用django+celery和redis作为代理,我的一个任务涉及读取大约25MB大小的大文件并返回结果,通过该结果链接另一个任务来处理结果。由于我对redis不熟悉,所以在这里遇到错误,求助。可能是什么问题?[2013-06-2322:45:41,241:ERROR/MainProcess]Unrecoverableerror:MemoryError()Traceback(mostrecentcalllast):File"/home/property/virtualenv/property_env/lib/python2.6/site-packages/celery/work

python - 使用 redis 和 celery 向所有工作人员广播任务

我试试看:ma​​in.pyimporttasksif__name__=='__main__':result=tasks.add.apply_async(([4,4]),queue='broadcast_tasks')result.ready()value=result.get()print(value)tasks.pyfromceleryimportCeleryfromkombu.commonimportBroadcastapp=Celery('tasks',broker='redis://localhost:6379/0',backend='redis://localhost:63