Tag: 芹菜

如何检查芹菜的任务状态?

如何检查一个任务是否在芹菜(特别是,我使用芹菜Django)运行? 我已经阅读了文档,并且使用了Googlesearch,但是我看不到如下所示的调用: my_example_task.state() == RUNNING 我的用例是我有一个外部(Java)服务转码。 当我发送要转码的文档时,我想检查运行该服务的任务是否正在运行,如果没有,则(重新)启动它。 我使用目前的稳定版本 – 2.4,我相信。

Rabbitmq或Gearman – select一个工作队列

在工作中,我们需要构build一个作业服务器,用于发送电子邮件,构buildPDF,处理一些数据等等。显然,我们希望build立在某种通用排队系统上。 我对Gearman很熟悉,而这正是它试图解决的一个确切问题:把工作放在工作人员来接他们的队列中。 但是,我看到很多关于Rabbitmq的提及,在这种情况下我不清楚它是如何使用的。 Rabbitmq是一个构build分布式作业系统的好框架吗?

用芹菜取消已经执行的任务?

我一直在阅读文档和search,但似乎无法find一个直接的答案: 你能取消一个已经执行的任务吗? (如在任务已经开始,需要一段时间,并通过它的一半需要被取消) 我从Celery FAQ的文档中find这个 >>> result = add.apply_async(args=[2, 2], countdown=120) >>> result.revoke() 但是我不清楚这是否会取消排队的任务,或者是否会杀死一个工人正在运行的进程。 谢谢你可以放弃任何光线!

分布式任务队列(Ex。Celery)vs crontab脚本

我无法理解“分布式任务队列”的用途。 例如,python的芹菜库 。 我知道,在芹菜,python框架,你可以设置定时的窗口function来执行。 然而,这也可以很容易地在一个Python脚本的linux crontab中完成。 据我所知,从我自己的django芹菜webapps显示,芹菜消耗更多的RAM内存比只是build立一个原始的crontab。 一个相对较小的应用程序几百MB差异。 有人能帮我这个区别吗? 也许关于任务队列/ crontabs如何工作的高层次的解释也是很好的。 谢谢。

你如何unit testing芹菜任务?

Celery文档提到在Django中testingCelery,但是如果不使用Django,则不会解释如何testingCelery任务。 你怎么做到这一点?

unit testing与Django芹菜?

我想为我们的django-芹菜项目提出一个testing方法。 我已经阅读了文档中的注释,但并没有给我一个好的想法。 我并不担心在实际的守护进程中testing任务,只是我的代码的function。 主要是我想知道: 我们如何绕过task.delay()在testing过程中(我尝试设置CELERY_ALWAYS_EAGER = True但没有区别)? 我们如何使用推荐的testing设置(如果这是最好的方式),而不实际改变我们的settings.py? 我们仍然可以使用manage.py test还是必须使用自定义运行器? 总的来说,使用芹菜testing的任何提示或技巧将会非常有帮助。

在Celery中检索队列中的任务列表

我如何检索队列中尚未处理的任务列表?

删除芹菜/ rabbitmq中的所有待处理任务

如何在不知道每个任务的task_id情况下删除所有挂起的任务?

为什么我们需要像PostgreSQL这样的像RabbitMQ这样的消息代理?

我对像RabbitMQ这样的消息代理是新来的,我们可以使用它来为像Celery这样的调度系统创build任务/消息队列。 现在,这是一个问题: 我可以在PostgreSQL中创build一个表格,这个表格可以被附加新的任务,并被像Celery这样的消费者程序所使用。 为什么我要为RabbitMQ设置一个全新的技术? 现在,我相信扩展不能成为答案,因为像PostgreSQL这样的数据库可以在分布式环境中工作。 我search了数据库为特定问题提出的问题,并发现: 保持数据库繁忙和低性能的轮询 表的locking – >再次performance不佳 数百万行的任务 – >再次轮询performance不佳 现在,RabbitMQ或者其他类似的消息代理如何解决这些问题呢? 另外,我发现AMQP协议是遵循的。 那有什么好处? Redis也可以用作消息代理吗? 我发现它更类似于memcache然后RabbitMQ。 请点亮这个!

在芹菜任务中运行Scrapy蜘蛛

这不工作了 ,scrapy的API已经改变了。 现在,文档中提供了一种“ 从脚本运行Scrapy ”的方法,但是我得到了ReactorNotRestartable错误。 我的任务: from celery import Task from twisted.internet import reactor from scrapy.crawler import Crawler from scrapy import log, signals from scrapy.utils.project import get_project_settings from .spiders import MySpider class MyTask(Task): def run(self, *args, **kwargs): spider = MySpider settings = get_project_settings() crawler = Crawler(settings) crawler.signals.connect(reactor.stop, signal=signals.spider_closed) crawler.configure() crawler.crawl(spider) crawler.start() log.start() reactor.run()