Tag: 芹菜

芹菜 – 在一台服务器上运行不同的工作人员

我有两种任务:Type1 – 一些高优先级的小任务。 types2 – 优先级较低的繁重任务。 最初我使用默认路由进行了简单的configuration,没有使用路由密钥。 这是不够的 – 有时所有的工作人员都忙于Type2任务,所以Task1被推迟了。 我已经添加了路由键: CELERY_DEFAULT_QUEUE = "default" CELERY_QUEUES = { "default": { "binding_key": "task.#", }, "highs": { "binding_key": "starter.#", }, } CELERY_DEFAULT_EXCHANGE = "tasks" CELERY_DEFAULT_EXCHANGE_TYPE = "topic" CELERY_DEFAULT_ROUTING_KEY = "task.default" CELERY_ROUTES = { "search.starter.start": { "queue": "highs", "routing_key": "starter.starter", }, } 所以现在我有两个队列 – 高优先级任务和低优先级任务。 问题是 – 如何启动2 celeryd与不同的并发设置? […]

芹菜与亚马逊SQS

我想使用Amazon SQS作为Celery的后盾。 芹菜依赖于Kombu的SQS运输实施。 但是没有足够的文档来使用它,所以我找不到如何在Celery上configurationSQS。 有没有人成功在芹菜上configurationSQS?

重试芹菜任务与指数退出

对于这样的任务: from celery.decorators import task @task() def add(x, y): if not x or not y: raise Exception("test error") return self.wait_until_server_responds( 如果它抛出一个exception,我想从守护进程重试它,如何应用指数退避algorithm,即2^2, 2^3,2^4等秒后? 也是从服务器端维护的重试,如果工人碰巧遇害,那么下一个产生的工作人员将采取重试任务?

芹菜并行分布式任务与多处理

我有一个CPU密集型的芹菜任务。 我想使用大量EC2实例的所有处理能力(核心)来更快地完成这项工作( 我认为是一个多处理的芹菜并行分布式任务) 。 线程 , 多处理 , 分布式计算 , 分布式并行处理等术语都是我想要更好地理解的术语。 示例任务: @app.task for item in list_of_millions_of_ids: id = item # do some long complicated equation here very CPU heavy!!!!!!! database.objects(newid=id).save() 使用上面的代码(如果可能,举个例子)如何使用Celery来分配这个任务,通过允许在云中的所有可用机器上利用所有计算CPU能力来分割这个任务?

我怎样才能手动运行一个芹菜周期性的任务?

我正在使用芹菜和django芹菜。 我定义了一个我想testing的定期任务。 是否可以手动从shell运行周期性任务,以便查看控制台输出?

无法在heroku django中导入名称_uuid_generate_random

我正在研究扫描用户Gmail收件箱并提供报告的项目。 我已经将它部署在以下规格的heroku中 : 语言: Python 2.7 框架: Django 1.8 任务调度程序: 芹菜 ( Rabbitmq-bigwig经纪人url) 现在,当heroku执行它芹菜不给我输出。 在Heroku推挤显示Collectstaticconfiguration错误 。 我曾尝试使用whitenoise包 还尝试执行: heroku运行python manage.py collectstatic –dry-run –noinput仍然收到相同的错误。 $ heroku运行python manage.py collectstatic –noinput给出了错误的以下细节。 File "manage.py", line 10, in <module> execute_from_command_line(sys.argv) File "/app/.heroku/python/lib/python2.7/site-packages/django/core/management/__init__.py", line 338, in execute_from_command_line utility.execute() File "/app/.heroku/python/lib/python2.7/site-packages/django/core/management/__init__.py", line 303, in execute settings.INSTALLED_APPS File "/app/.heroku/python/lib/python2.7/site-packages/django/conf/__init__.py", line 48, in __getattr__ […]

Django芹菜测井最佳实践

我试图让芹菜日志与Django工作。 我有settings.py日志设置去控制台(工作正常,因为我在Heroku托pipe)。 在每个模块的顶部,我有: import logging logger = logging.getLogger(__name__) 在我的tasks.py中,我有: from celery.utils.log import get_task_logger logger = get_task_logger(__name__) 这对logging来自任务的调用工作正常,我得到这样的输出: 2012-11-13T18:05:38+00:00 app[worker.1]: [2012-11-13 18:05:38,527: INFO/PoolWorker-2] Syc feed is starting 但是,如果该任务然后在另一个模块中调用方法,例如queryset方法,则会得到重复的日志条目,例如 2012-11-13T18:00:51+00:00 app[worker.1]: [INFO] utils.generic_importers.ftp_processor process(): File xxx.csv already imported. Not downloaded 2012-11-13T18:00:51+00:00 app[worker.1]: [2012-11-13 18:00:51,736: INFO/PoolWorker-6] File xxx.csv already imported. Not downloaded 我想我可以使用 CELERY_HIJACK_ROOT_LOGGER = False 只是使用Django日志logging,但是当我尝试它时,这并不起作用,即使我确实得到它,我会失去我想要的"PoolWorker-6"位。 (顺便说一下,我不知道如何让任务名称显示在从芹菜的日志条目,因为文档似乎表明它应该)。 […]

芹菜 – 获取当前任务的任务ID

如何从任务中获取任务的task_id值? 这是我的代码: from celery.decorators import task from django.core.cache import cache @task def do_job(path): "Performs an operation on a file" # … Code to perform the operation … cache.set(current_task_id, operation_results) 这个想法是,当我创build一个新的任务实例,我从任务对象检索task_id 。 然后我使用任务ID来确定任务是否完成。 我不想跟踪path值的任务,因为文件在任务完成后被“清理”,可能存在也可能不存在。 在上面的例子中,我将如何获取current_task_id的值?

将所有芹菜任务的日志消息发送到单个文件

我想知道如何设置更具体的日志logging系统。 我所有的任务都使用 logger = logging.getLogger(__name__) 作为模块范围的logging器。 我想芹菜login到“celeryd.log”和我的任务“tasks.log”,但我不知道如何得到这个工作。 使用django-celery中的CELERYD_LOG_FILE我可以将所有芹菜相关的日志消息路由到celeryd.log,但没有任何在我的任务中创build的日志消息的跟踪。

芹菜收到未注册的任务types(运行示例)

我想从Celery文档运行示例 。 我运行: celeryd –loglevel=INFO /usr/local/lib/python2.7/dist-packages/celery/loaders/default.py:64: NotConfigured: No 'celeryconfig' module found! Please make sure it exists and is available to Python. "is available to Python." % (configname, ))) [2012-03-19 04:26:34,899: WARNING/MainProcess] ————– celery@ubuntu v2.5.1 —- **** —– — * *** * — [Configuration] — * – **** — . broker: amqp://guest@localhost:5672// – ** ———- . […]