草庐IT

celery_tasks

全部标签

django - 使用 MongoDB 作为 Celery 的消息队列

我正在尝试使用MongoDB作为Celery的消息队列(在Django应用程序中)。当前的Celery开发版本(2.2.0rc2)应该可以让您执行此操作,但我似乎无法让任何工作人员接手我正在创建的任务。版本:celeryv2.2.0rc3MongoDB1.6.5pymongo1.9django-celery2.2.0rc2在我的设置中,我有:CELERY_RESULT_BACKEND="mongodb"CELERY_MONGODB_BACKEND_SETTINGS={#Shouldn'tneedthese-defaultsarecorrect."host":"localhost","p

django - 使用 MongoDB 作为 Celery 的消息队列

我正在尝试使用MongoDB作为Celery的消息队列(在Django应用程序中)。当前的Celery开发版本(2.2.0rc2)应该可以让您执行此操作,但我似乎无法让任何工作人员接手我正在创建的任务。版本:celeryv2.2.0rc3MongoDB1.6.5pymongo1.9django-celery2.2.0rc2在我的设置中,我有:CELERY_RESULT_BACKEND="mongodb"CELERY_MONGODB_BACKEND_SETTINGS={#Shouldn'tneedthese-defaultsarecorrect."host":"localhost","p

python - 具有多个 Django 实例的 celery

我正在使用多个django实例,每个都在一个virtualenv中,在同一个服务器。我怎样才能启动celery服务器并确保它始终运行并且更新?IE。服务器重启或代码更新后?/etc/init.d脚本和配置文件假定单个Django安装。我必须使用./manage.pyceleryd命令吗?问候西蒙 最佳答案 你应该看看djangocelery。这允许您在它自己的virtualenv中为每个项目使用manage.pyceleryd命令。您可以使用supervisord守护这些进程并单独管理它们。查看http://ask.github.c

linux - 理解从进程内核栈中获取task_struct指针

现在我正在阅读RobertLove所著的《Linux内核开发3d版》一书。他在那里写了thread_info结构,它包含指向task_struct结构的指针,据我所知,它位于进程内核堆栈的底部或顶部(取决于体系结构)。直到最近我才熟悉Linux内核API,也不知道current()方法的存在。书中有一段关于current()方法实际工作原理的摘录:Onx86,currentiscalculatedbymaskingoutthe13least-significantbitsofthestackpointertoobtainthethread_infostructure.Thisisdon

linux - Linux 中的调度 : run a task when computer is idle (= no user input)

我想运行Folding@home客户端仅在我的Ubuntu8.10机器闲置时才运行,因为该程序占用大量RAM。“空闲”是指没有用户事件(键盘、鼠标等)的状态。由于F@H具有最低的CPU优先级,因此此时运行其他(可能是繁重的)进程是可以的。重点只是为了提高用户体验,在无人使用机器时做繁重的工作。如何实现? 最佳答案 当有问题的机器是台式机时,您可以将启动/停止脚本挂接到屏幕保护程序,以便在屏幕保护程序处于非事件状态时停止进程,反之亦然。 关于linux-Linux中的调度:runatask

python - 恶魔化 celery

找到以下说明here,我复制了thescriptfromgithub进入/etc/init.d/celeryd,然后使其可执行;$ll/etc/init.d/celeryd-rwxr-xr-x1rootroot9481Feb1911:27/etc/init.d/celeryd*我按照说明创建了配置文件/etc/default/celeryd:#Namesofnodestostart#mostwillonlystartonenode:#CELERYD_NODES="worker1"#butyoucanalsostartmultipleandconfiguresettings#foreac

linux - 以根用户身份运行 celery

出于访问原因,我需要以root身份运行我的Django和Celery。它说我需要设置C_FORCE_ROOT环境变量。如何/在哪里设置环境变量? 最佳答案 您可以像这样将其设置为true:#exportC_FORCE_ROOT="true"然后确保它被设置为一个环境。变量#echo$C_FORCE_ROOTtrue但是一定要让它永久化,因为这会在下次重启时消失玩得开心:)!! 关于linux-以根用户身份运行celery,我们在StackOverflow上找到一个类似的问题:

c - Linux内核-task_h_load

我正在尝试了解load_balance函数期间发生的情况。我正在检查3.14版,但我也查看了4.3版,因为有人告诉我机制已更改,并且在此版本中更加清楚。在v3.14中,call来自move_tasks在v4.3中,call来自detach_tasks从我所看到的是相同的功能,只是名称不同。此功能根据env->balance参数将任务从一个队列移到另一个队列。我不明白的是task_h_load中的负载计算方式/方式。有谁知道加载成员代表什么以及如何在task_h_load函数中计算它? 最佳答案 CFS包含“计划实体”树。每个调度实体

django - 如何在不延迟任务的情况下优雅地重启 Celery

我们使用Celery和我们的Djangowebapp来管理离线任务;其中一些任务最多可以运行120秒。每当我们对代码进行任何修改时,我们都需要重新启动Celery以使其重新加载新的Python代码。我们目前的解决方案是向主Celery进程发送一个SIGTERM(kill-s15`cat/var/run/celeryd.pid`),然后等待它结束并重新启动它(pythonmanage.pyceleryd--pidfile=/var/run/celeryd.pid[...]).由于长时间运行的任务,这通常意味着关闭将需要一两分钟,在此期间不会处理任何新任务,从而对当前站点上的用户造成明显的

python - 如何将 celery 作业的参数输入到要查询的数据库中;使用 mysql

我使用MySql作为celery的结果后端。我也想在数据库中存储程序参数。例如:add.apply_async(args=[num1,num2,user]在这种情况下,我想将用户参数存储在数据库中,以便以后查询。目前,我返回存储在数据库中的参数。defadd(num1,num2,user):return[num1+num2,user]但是当任务处于运行状态时,用户没有被插入,我无法在数据库中查询它。有什么解决方案/破解方法吗? 最佳答案 您是仅使用MySql作为结果后端,还是也将它用于队列(我不推荐)?如果您将它用于队列,则一旦发送