相关疑难解决方法(0)

如何在运行任务之前设置Celery来调用自定义初始化函数?

我有一个Django项目,我正在尝试使用Celery提交后台处理任务(http://ask.github.com/celery/introduction.html).Celery与Django很好地集成,我已经能够提交我的自定义任务并获得结果.

唯一的问题是我找不到在守护进程中执行自定义初始化的合理方法.在开始处理任务之前,我需要调用一个加载大量内存的昂贵函数,而且每次都无法调用该函数.

以前有人有这个问题吗?任何想法如何解决它而不修改Celery源代码?

谢谢

python django daemon amqp celery

18
推荐指数
1
解决办法
8930
查看次数

如何使用工人初始化时使用的变量启动芹菜工人

是否可以选择在启动时将变量传递给 celery worker 并在执行时在 worker 内部使用它?

我正在编写负责机器学习培训和评估的服务器。我想动态启动新的 worker 实例并将变量传递给它,该变量将用于在内部加载特定模型。

我找到了如何使用方法从这里的答案开始工作worker_main。

我在考虑两种解决方案:

  1. 将其设置为环境变量。此解决方案的问题在于,当同时创建两个 worker 实例时,它可能会损坏。

  2. 将其作为 argv 传递,但我不知道如何读取 worker 内部的变量。


编辑

我找到了这个线程,但它只讨论了在任务中访问自定义参数。我的问题是关于在工人初始化时访问它。

灵感来自这个线程我会尝试用芹菜信号。 http://docs.celeryproject.org/en/latest/userguide/signals.html#worker-init

python celery

3
推荐指数
1
解决办法
2654
查看次数

标签 统计

celery ×2

python ×2

amqp ×1

daemon ×1

django ×1