草庐IT

celery_worker

全部标签

django - 使用 celery 异步执行 Django 应用程序的任务

在我维护的Django应用程序中,用户登录并相互交换消息,论坛风格。在任何给定的时间点,我通过检查在过去5分钟内登录了session对象的人来显示谁在线。为此,我使用了Django插件user_sessions,这允许像常规ORM一样操作session。我实现这个的代码是这样的:classWhoseOnlineView(ListView):model=Sessiontemplate_name="whose_online.html"defget_queryset(self):unique_user_sessions=Session.objects.filter(last_activity

python-2.7 - python-rq worker自动关闭

我正在实现python-rq以在队列中传递域并使用BeautifulSoup抓取它。所以我正在运行多个worker来完成工作。截至目前,我启动了22个worker,所有22个worker都在rq仪表板中注册。但是一段时间后,工作人员自行停止并且没有显示在仪表板中。但是在webmin中,它显示所有工作人员都在运行。爬行速度也降低了,即worker没有跑。我尝试使用supervisor和nohup来运行worker。在这两种情况下,worker都会自行停止。这是什么原因?为什么worker会自己停下来?我们可以在一台服务器上启动多少个worker?除此之外,每当有工作人员从rq仪表板注销时

python - 集成 Tornado 与 celery : RuntimeError: tornado-redis must be installed to use the redis backend

我在使用tornado-celery整合tornado和celery时,出现错误:```traceback(mostrecentcalllast):File"/usr/local/lib/python2.7/dist-packages/tornado/web.py",line1369,in_stack_context_handle_exceptionraise_exc_info((type,value,traceback))File"/usr/local/lib/python2.7/dist-packages/tornado/stack_context.py",line314,inwr

python - RQ Flask Heroku worker 应用上下文

有app.py:app=Flask(__name__)withapp.app_context():app.config.from_object(os.environ['APP_SETTINGS'])app.config['SQLALCHEMY_TRACK_MODIFICATIONS']=Falseapp.debug=Truedb.app=appdb.init_app(app)if__name__=='__main__':app.run()和worker.py:importosimportredisfromrqimportWorker,Queue,Connectionlisten=['h

将 Celery 从 3.1 升级到 4.0 后 Redis 不返回结果

我最近将我的Celery安装升级到了4.0。经过几天的升级过程,我终于让它工作了……有点。有些任务会返回,但最终任务不会。我有一个类SFF,它接受并解析一个文件:#ConstructorwithI/Ofiledef__init__(self,file):#Filedatathat'sgonnagetusedalotsffDescriptor=file.fileno()fileName=abspath(file.name)#GetthepointertothefilefilePtr=mmap.mmap(sffDescriptor,0,flags=mmap.MAP_SHARED,prot=

python - 使用 Heroku 安装 Celery 和 Redis

我使用Django1.9、Python2.7和Heroku。Celery3和Redis运行良好,直到我切换到Celery4.0.2并更改了配置。heroku日志显示以下消息:2017-03-05T16:34:22.076383+00:00app[worker.1]:Unknowncommand:'celery'这是我的配置:__init.py__from__future__importabsolute_import,unicode_literalsfrom.celeryimportappascelery_app__all__=['celery_app']settings.pyINSTA

django - celery 重复我的任务三次

我在celery中调用了一些任务一次,但celery执行了所有这些任务3次。这是celery的预期行为还是配置错误?我正在使用Django1.5.11、Celery3.1.23和Redis3.0.6。 最佳答案 您可能有一些离群的工作人员正在执行任务,或者celeryflower实例可能会尝试“帮助”恢复未确认的消息。使用ps-Af|确保只有一个celery实例正在运行grepcelerybeat并通过访问http://localhost:5555检查是否有正在运行的花实例(它通常在该端口上运行)。

python - celery 最好的方式管理/获取任务的eta

我想每次通过get请求获取celery中的任务eta。celery中没有直接的api来获取任务预定时间(除了inspect()-但对我来说这似乎非常昂贵)我如何管理特定任务的预计到达时间?在Django模型中存储eta时间的缺点是不一致(要么我不能存储taks_id因为我不能-不知道如何从task_id获取eta)我在一个问题上看到没有api,因为它在某种程度上取决于经纪人等。但我希望有一些解决方案那么管理task_id以获得eta的最佳方式是什么?后端和broker是redis 最佳答案 我不认为有什么神奇的方法可以做到这一点。我

python - celery 如何将任务结果存储在redis中

我是Python和Celery-Redis的新手,所以如果我的理解不正确请指正。我一直在调试一个代码库,它的结构如下-TaskClass->Celery任务HandlerClass1,HandlerClass2->这些是扩展Object类的python类应用程序创建TaskClass说dumyTask实例和dumyTask创建celery子任务(我相信这些子任务是唯一的)说dumySubTask1,dumySubTask2通过获取处理程序的签名。我不明白的是什么?1)celery如何管理dumySubTask1、dumySubTask2和dumyTask的结果?我的意思是dumySub

python - Celery worker 进入无限启动和关闭循环

几年来,我一直在Django项目中使用celery(python中的异步任务队列)作为结果后端和代理-今天我尝试将后端/代理切换到AWS的ElastiCacheRedis,但是celeryworker进入无限的启动和关闭循环,如下面的日志文件所示。我还从运行celery的同一台机器成功连接到Redis实例,并成功完成了一些基本的SET和GET操作。我当前的设置是:操作系统:Ubuntu14.04python2.7.6celery3.1.17昆布3.0.37台球3.3.0.23命令:celeryworker--concurrency=3--queues=general--events--