问题标签 [celery]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
django - 如何让广播与 djcelery+ghettoq 一起使用
我将 djcelery 2.1.4 与 ghettoq 0.4.5 和 django 1.2.3 一起使用,我能够整天运行任务,但是当我尝试使用任何广播功能时,它会失败而没有错误。以最简单的情况为例——我运行 celeryd:
守护进程启动,我尝试运行 ping:
我可以看到 ping 创建的消息出现在数据库中,但显然没有节点接收它?我在这里做错了吗?广播不适用于ghettoq吗?
python - celery does not start on centos 5.4
I install celery using "pip install celery" and setup the celeryconfig.py to talk to the rabbitmq server running on another server running in the same network. The python version i have is 2.7 When i try to run start celeryd i get the following error:
python - 为什么 Celery 可以在 Python shell 中工作,但不能在我的 Django 视图中工作?(导入问题)
我安装了 Celery(最新的稳定版本)。我有一个名为/home/myuser/fable/jobs
. 在这个目录中,我有一个名为 tasks.py 的文件:
在这个目录中,我还有一个名为 celeryconfig.py 的文件:
在我的/etc/profile
中,我将这些设置为我的 PYTHONPATH:
PYTHONPATH=/home/myuser/fable:/home/myuser/fable/jobs
所以我使用控制台 ( ) 运行我的 Celery 工作$ celeryd --loglevel=INFO
程序,并尝试一下。我打开 Python 控制台并导入任务。然后,我运行提交者。
一切正常,正如您在我的控制台中看到的那样
但是当我进入我的 Django 的 views.py 并运行上面的 3 行代码时,我得到了这个:
这很奇怪,因为当我启动 celeryd 客户端时,它确实显示它已注册。
有人可以帮忙吗?
python - 如何使用 celery 配置不同的工作池?
我需要使用(通常)以下三类工作人员部署排队执行服务:
一个周期性的、低优先级的作业类,耗时较长,可以串行处理;这些作业最多只能使用系统中的 0..2 个工人。
一个周期性的、对截止日期敏感的工作类,需要短到中等的时间(例如,在 5 分钟结束)
ad-hoc 作业类,优先级高于#1,但可以与#2 交错。当这种类型的工作进入时,来自 #2 类的任何不活动的工人都应该处理它,而不会让 #2 的工人池挨饿
所有三个工作类别都是相同的任务,它们之间的唯一区别是它们的请求方式;它们将采用相同的输入并生成相同的输出,但每个都有不同的性能保证。
如何使用芹菜实现这一点?
python - 向现有的 celery 工作进程动态添加功能?
我开始使用 celery,我想知道是否可以将模块添加到已经启动的 celeryd 进程中。换句话说,而不是像通过 celeryconfig.py 添加模块
在启动工作人员之前,我想在工作进程启动后以某种方式使附加模块可用。
提前致谢。
django - 与 Celery v2.1.4 一起使用的最旧版本的 RabbitMQ 是什么?
Celery v2.1.4 可以使用的最低 RabbitMQ 版本是多少?
python - 为什么它找不到我的芹菜配置文件?
/home/myuser/mysite-env/lib/python2.6/site-packages/celery/loaders/default.py:53:未配置:未找到 celeryconfig.py 模块!请确保它存在并且对 Python 可用。
未配置)
我什至在我的 /etc/profile 以及我的虚拟环境的“激活”中定义了它。但它不是在读它。
django - 使用 Django Celery 向对象添加视图计数器
这并不重要,但这是对这个问题的跟进。
我想记录我的数据库中每个对象被查看的次数。假设我们有一个Person
模型,有几个实例。我们想记录每个实例在模型中被查看的次数Person
,使用 Django Celery 来避免等待数据库写入。
目前我正在这样做:
然后,每次调用列出人员页面的视图时,我都会获取所有人员,并像这样更新统计信息:
然后我返回要在浏览器中显示的人员列表。我认为统计信息的更新会异步发生,但是在显示页面之前有一个明显而漫长的延迟,这可以通过print
在 Celery 命令窗口中显示每个添加的语句来确认。该页面仅在最后一个统计信息更新后才呈现。
如何确保用户不等待数据库更新完成?
更新
我认为这可能与没有足够的工作进程来分别处理每个人有关,因此我创建了一个接受人员列表作为参数的函数,并将其用作要执行的任务。因此,队列中只有一项任务:
但是,当打印到控制台时,如下所示:
然后在“添加”和“完成”步骤之间有明显的延迟,函数的返回值为None
.
django - 使用 MongoDB 作为 Celery 的消息队列
我正在尝试使用 MongoDB 作为 Celery 的消息队列(在 Django 应用程序中)。当前的 Celery 开发版本 (2.2.0rc2) 应该让你这样做,但我似乎无法让任何工作人员接手我正在创建的任务。
版本:芹菜 v2.2.0rc3
mongodb 1.6.5
pymongo 1.9
django-celery 2.2.0rc2
在我的设置中,我有:
我创建了一个测试 tasks.py 文件,如下所示:
如果我在后台启动 celeryd,它似乎可以正常启动。然后我打开一个 python shell 并运行以下命令:
问题是没有工人接手任务。我错过了一个设置还是什么?如何将 celery 指向消息队列?
python - Celery 与 Django - 部署
我正在考虑在我的项目中使用芹菜。我发现了很多关于如何使用它等的信息。我感兴趣的是如何部署/打包我的解决方案。
我需要运行两个组件——django app,然后是 celeryd worker(发送电子邮件的组件)。例如,我希望我的 django 应用程序使用 email_ticket 任务,该任务将通过电子邮件发送支持票。我在 django 应用程序中创建 tasks.py。
我是否部署了我的 django 应用程序,然后将 celeryd 作为单独的进程从同一路径运行?
不同服务器上的工作人员呢?部署整个 django 应用程序并只运行 celeryd?我知道我只能为工人使用 celery,但我想使用 celerycam 和 celerybeat。
任何反馈表示赞赏。谢谢
感谢您的任何反馈。