草庐IT

celery_tasks

全部标签

python - 使用 celery 处理巨大的文本文件

背景我正在研究使用celery(3.1.8)来处理每个巨大的文本文件(~30GB)。这些文件在fastq中格式并包含大约118M测序“读数”,它们基本上都是header、DNA序列和质量字符串的组合)。此外,这些序列来自双端测序运行,因此我同时迭代两个文件(通过itertools.izip)。我希望能够做的是获取每对读取,将它们发送到队列,并让它们在我们集群中的一台机器上进行处理(不管是哪台机器)以返回清理后的版本如果需要进行清洁(例如,基于质量),则读取。我已经设置了celery和rabbitmq,我的workers启动如下:celeryworker-Atasks--autorelo

python - 去抖 celery 任务?

是否有用于消除Celery任务的标准方法?例如,一个任务可以多次“启动”,但在一些延迟后只会运行一次:defdebounce_task(task):iftask_is_queued(task):returntask.apply_async(countdown=30) 最佳答案 这是我们使用Redis计数器的方法。所有这些可能都可以在装饰器中概括,但我们只将它用于特定任务(webhooks)您的面向公众的任务是您从其他职能部门调用的任务。它需要在Redis中增加一个键。键由函数的参数组成,无论它们是什么(这确保计数器在各个任务中是唯一

Python:确保 os.environ 和 sys.path 相等:web-requests、shell、cron、celery

我想确保os.environ和sys.path对于我们启动Python解释器的所有方式都是相同的:通过Django和Apachemod_wsgi的网络请求计划任务通过ssh交互式登录celery作业通过systemd启Action业有解决这个问题的通用方法吗?如果是,那就太好了:它看起来怎么样?如果没有,很伤心:每个人都会自己解决这个问题。...解决这个问题的好方法是什么?操作系统:Linux(支持systemd)更新更明确:我希望sys.path在网络请求、cron作业、从shell启动的python中相同,...我希望os.environ在Web请求、cron作业、从shell启动

python - celery :不允许守护进程有 child

在Python(2.7)中,我尝试在celery任务(celery3.1.17)中创建进程(使用多处理),但它给出了错误:daemonicprocessesarenotallowedtohavechildren谷歌搜索,我发现最新版本的billiard修复了“错误”,但我有最新版本(3.3.0.20),但错误仍在发生。我还尝试实现thisworkaround在我的celery任务中,但它给出了同样的错误。有人知道怎么做吗?任何帮助表示赞赏,帕特里克编辑:代码片段任务:from__future__importabsolute_importfromceleryimportshared_ta

aar合并打包报错|library、module集成aar包报Execution failed for task ‘:app:mergeDebugNativeLibs

直奔主题:本文主要解决module中引用aar包依赖报错的问题,及aar包合并打成新aar包的问题网上有很多解决方案,基本上都很麻烦,或者需要改变项目结构,今天我提供一个最简单的实现方案。首先,为了复现问题及解决问题,新建了一个测试项目,主app引用名为mylibrary的module,module中为了实现某些功能需要依赖aar包及相关so库。目录结构如下:问题复现:我们一般会按照app层集成方式,添加flatDir指定aar包目录,dependencies中添加依赖引用,如: 这样引用看上去没有问题,编译的时候就会报*Whatwentwrong:Executionfailedfortask

python - 让Celery在没有task_always_eager的情况下使用Django的测试数据库

在使用Celery任务的Django应用程序中运行测试时,我无法完全测试需要从数据库获取数据的任务,因为它们没有连接到Django创建的测试数据库。设置task_always_eager在Celery中设置为True部分解决了这个问题,但作为documentationfortesting说,这并不能完全反射(reflect)代码将如何在真正的Celeryworker上运行并且不适合测试。如何在不设置task_always_eager=True的情况下运行Django测试时让Celery任务使用Django测试数据库? 最佳答案 简短

python - celery - 完成任务时调用函数

我将celery与django和rabbitmq一起使用来创建消息队列。我也有一个worker,它来自另一台机器。在DjangoView中,我正在开始这样的过程:defprocesstask(request,name):args=["ls","-l"]MyTask.delay(args)returnHttpResponse("Tasksettoexecute.")我的任务是这样配置的:classMyTask(Task):defrun(self,args):p=subprocess.Popen(args,stdout=subprocess.PIPE,stderr=subprocess.P

python celery - ImportError : No module named _curses - while attempting to run manage. py celeryev

背景Windows7x64Python2.7Django1.4带Redisbundle的celery在尝试运行manage.pyceleryev时,我在终端中收到以下错误importcursesFile'c:\Python2\lib\curses\__init__.py',line15,infrom_cursesimport*ImportError:Nomodulenamed_curses我试过查看其他帖子,但未能解决这个问题。关于导致此错误的原因有什么想法吗?提前致谢。 最佳答案 根据http://docs.python.org/

python - Django Celery 教程不返回结果

UDATE3:发现了问题。请参阅下面的答案。UPDATE2:看来我可能一直在通过manage.pyshell运行djcelery教程来处理自动命名和相对导入问题,见下文。它仍然不适合我,但现在我收到新的日志错误消息。见下文。更新:我在帖子底部添加了日志。示例任务好像没有注册?原帖:我正在尝试启动并运行django-celery。我没能完成这个例子。我成功安装了rabbitmq并顺利完成了教程:http://www.rabbitmq.com/getstarted.html然后我尝试完成djcelery教程。当我运行pythonmanage.pyceleryd-linfo时,我收到消息:[

python - 将 gen.task 与 Tornado 一起使用以获得简单的功能

只是尝试使用Tornado的异步函数-我想从我的处理程序中调用一个方法,但它一直告诉我它“有一个意外的关键字参数‘回调’”。classMyHandler(tornado.web.RequestHandler):@asynchronous@gen.enginedefget(self):response=yieldgen.Task(self.dosomething,'argument')self.write(response)self.finish()defdosomething(self,myargument):pass 最佳答案 非