问题标签 [celery-task]
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.
python - 1970 年具有 time_start 属性的 Celery 任务
检查当前正在运行的 Celery 任务会发现一个奇怪的time_start
时间戳:
该time_start
属性将任务追溯到1970 年(那是在创建 Celery、Python 之前,而且我没有定制的 DeLorean):
我是否误解了time_task
属性?我的 Celery 应用程序配置错误吗?
我在 Linux 上使用带有 Django 应用程序和 Redis 后端的 Celery 3.1.4。
任务由执行如下的工作人员运行:
python - 在线程中的任意位置获取当前 celery 任务 id
我想在正在运行的任务中获取任务 ID,但不知道我在执行哪个任务。(这就是我不能使用https://stackoverflow.com/a/8096086/245024的原因)
我希望它是这样的:
这种模式在许多不同的任务中返回,我不想将任务上下文带到每个内部方法调用中。
一种选择是使用线程本地存储,但是我需要在任务开始之前对其进行初始化,并在完成后对其进行清理。
有没有更简单的?
celery - 如何在内存中加载对象并在 Celery worker 的不同执行中共享?
我在 3 个集群机器上设置了 celery + rabbitmq。我还创建了一个任务,它根据文件中的数据生成正则表达式并使用该信息来解析文本。但是,我希望读取文件的过程只在每个工作人员生成时完成一次,而不是在每次执行 as 任务时完成。
在上面的代码中,我想打开文件并将每个工作人员的输出读入字符串一次,然后任务 analyse_json 应该只使用字符串。
任何帮助将不胜感激,
谢谢,阿米特
java - 如何从Java等非python语言调用芹菜任务延迟函数?
我在 3 个集群机器上设置了 celery + rabbitmq。我还创建了一个任务,它根据文件中的数据生成正则表达式并使用该信息来解析文本。
我可以使用以下 python 代码非常轻松地调用此任务:-
但是,现在我想从 Java 而不是 python 进行相同的调用。我不确定做同样事情的最简单方法是什么。
我编写了这段代码来向 AMQP 代理发送消息。代码运行良好,但任务没有执行。我不确定如何指定应该执行的任务的名称。
} }
这是 rabbitMq 错误日志中的输出:-
任何帮助将不胜感激。
谢谢,阿米特
python - 为`ClassTask` mixin 子类化 Celery Task
以我是 Celery 新手的事实作为我的问题的前言,并且 (1) 可能已在其他地方得到回答(如果是这样,我找不到答案)或 (2) 可能有更好的方法来实现我的目标比我直接问的。
另外,我知道celery.contrib.methods
,但task_method
并没有完全完成我正在寻找的东西。
我的目标
我想创建一个类 mixin,将整个类变成 Celery 任务。例如,由下面的代码表示的 mixin(现在不运行):
与使用时不同task_method
,我不想.delay()
在任务排队并被调用之前完全实例化类。相反,我想简单地将类名连同任何相关的初始化参数传递给异步进程。然后异步进程将使用类名和给定的初始化参数完全实例化类,然后.run_now()
在实例化对象上调用一些方法(例如)。
示例用例
异步构建和发送电子邮件将是我需要的 mixin 的一个示例。
上面的代码将通过调用在异步 Celery 进程中发送电子邮件WelcomeEmail.enqueue(recipient_address, template_name, template_context)
。在进程中同步发送电子邮件将通过调用来完成WelcomeEmail(recipient_address, template_name, template_context).send()
。
问题
- 在 Celery 框架中,我正在尝试做的事情是否非常非常错误?
- 有没有更好的方法来构建 mixin 以使其比我提出的更 Celery-onic(更好的属性名称、不同的方法结构等)?
- 正如我所描述的那样,在用例中使 mixin 起作用时,我缺少什么?
python - 芹菜中高效的重复任务?
我每天有大约 250,000 个重复任务;其中大约五分之一可能会以每天不同的预定日期时间进行更新。
这可以在 Celery 中有效地完成吗?- 我担心芹菜的beat.py:
flask - 将 Web 请求上下文透明地传递给 celery 任务
我有一个多租户设置,我想将某些客户特定信息,特别是request.host传递给 celery 任务,理想情况下它应该在全局变量中可用。有没有办法以对应用程序透明的方式进行设置?
任务将以相同的方式调用:
该任务的定义方式相同,除了它可以访问一个名为“request”的全局变量,该变量具有“主机”属性:
django - Django 1.6 + RabbitMQ 3.2.3 + Celery 3.1.9 - 为什么我的 celery 工人死于:WorkerLostError:工人过早退出:信号 11(SIGSEGV)
这似乎解决了一个非常相似的问题,但并没有给我足够的洞察力:https ://github.com/celery/billiard/issues/101 听起来尝试非 SQLite 数据库可能是个好主意。 ..
我的 django 应用程序有一个简单的 celery 设置。在我的settings.py
文件中,我将任务设置为运行如下:
我已按照此处的说明进行操作:http: //celery.readthedocs.org/en/latest/django/first-steps-with-django.html
我可以打开两个新的终端窗口并运行 celery 进程,如下所示:
ONE - 计划任务所需的 celery beat 进程,并将任务放入队列:
二 - 芹菜工人,应该从队列中取出任务并运行它:
然而,当任务被发送时,似乎有 50% 的时间工作人员运行任务,而另外 50% 的时间我收到以下错误:
我正在运行 Mavericks 的 Macbook Pro 上进行开发。
芹菜版本 3.1.9 RabbitMQ 3.2.3 Django 1.6
请注意,我使用的是 django-celery 3.1.9 并启用了 djcelery 应用程序。
python - 芹菜任务完成django通知
我从 celery 开始,用于 django 中的一个模块,它将导入大型 csvs。用户将提供文件和其他一些字段,并且将检查 csv 然后将其发送到 celery。现在我应该为通知做什么?我希望用户能够离开页面,但在任务完成时收到某种通知。我打算将所有行放在一个组中,并使用和弦来回调一些 django 视图或 url,以向用户发送关于任务完成的弹出通知。通过这种方式,我试图避免轮询。
这会奏效吗?这是正确的方式吗?
python - 芹菜花 - 我如何加载以前捕获的任务?
我开始使用芹菜花进行任务监控,它就像一个魅力。不过,我有一个问题,如何在花重启后“重新加载”有关受监控任务的信息?我使用 redis 作为代理,即使在服务(或服务器)意外重启的情况下,我也需要选择检查任务。
提前致谢