草庐IT

python - Django Celery 获取任务计数

我目前正在将django与celery一起使用,一切正常。但是,如果服务器过载,我希望能够通过检查当前安排的任务数量,让用户有机会取消任务。我怎样才能做到这一点?我正在使用Redis作为代理。我刚发现这个:RetrievelistoftasksinaqueueinCelery这在某种程度上与我的问题有关,但我不需要列出任务,只需计算它们:) 最佳答案 下面是如何使用与代理无关的celery获取队列中消息的数量。通过使用connection_or_acquire,您可以利用celery的内部连接池,最大限度地减少与代理的打开连接数。c

python - Django Celery 获取任务计数

我目前正在将django与celery一起使用,一切正常。但是,如果服务器过载,我希望能够通过检查当前安排的任务数量,让用户有机会取消任务。我怎样才能做到这一点?我正在使用Redis作为代理。我刚发现这个:RetrievelistoftasksinaqueueinCelery这在某种程度上与我的问题有关,但我不需要列出任务,只需计算它们:) 最佳答案 下面是如何使用与代理无关的celery获取队列中消息的数量。通过使用connection_or_acquire,您可以利用celery的内部连接池,最大限度地减少与代理的打开连接数。c

redis - 达到 eta 时,长 eta(8 小时以上)的 celery 任务会连续执行多次

我正在创建一个eta范围在3到20小时之间的任务,当我查看工作日志时,对于这个任务,工作人员说“从经纪人那里得到任务:...”收到原始任务后每小时,直到达到eta。我知道这与设置BROKER_TRANSPORT_OPTIONS={'visibility_timeout':X}有关,其中X是以秒为单位的数字。所以我尝试了visibility_timeout,如果我将它设置为小于1小时,那么我可以看到工作人员每隔X秒就执行相同的任务,但是当我将visibility_timeout设置为更大的X时超过1小时,那么无论我设置的时间如何,它都会默认为1小时。还有其他人遇到过这个问题吗?这是已知错

redis - 达到 eta 时,长 eta(8 小时以上)的 celery 任务会连续执行多次

我正在创建一个eta范围在3到20小时之间的任务,当我查看工作日志时,对于这个任务,工作人员说“从经纪人那里得到任务:...”收到原始任务后每小时,直到达到eta。我知道这与设置BROKER_TRANSPORT_OPTIONS={'visibility_timeout':X}有关,其中X是以秒为单位的数字。所以我尝试了visibility_timeout,如果我将它设置为小于1小时,那么我可以看到工作人员每隔X秒就执行相同的任务,但是当我将visibility_timeout设置为更大的X时超过1小时,那么无论我设置的时间如何,它都会默认为1小时。还有其他人遇到过这个问题吗?这是已知错

redis - 您可以在 redis 中存储的最大值大小是多少?

有谁知道你可以在redis中存储的最大值大小是多少?我想使用redis作为带有celery的消息队列来存储一些需要由另一台服务器上的工作人员处理的小文档,并且我想确保这些文档不会太大。我找到了一个引用1GB的页面,但是当我点击页面上的链接以了解他们从何处获得答案时,该链接不再有效。这是链接:http://news.ycombinator.com/item?id=1182005 最佳答案 所有字符串值都限制为512MiB。这是您可能最关心的大小限制。编辑:因为Redis中的键是字符串,所以最大键大小为512MiB。键的最大数量为2^3

redis - 您可以在 redis 中存储的最大值大小是多少?

有谁知道你可以在redis中存储的最大值大小是多少?我想使用redis作为带有celery的消息队列来存储一些需要由另一台服务器上的工作人员处理的小文档,并且我想确保这些文档不会太大。我找到了一个引用1GB的页面,但是当我点击页面上的链接以了解他们从何处获得答案时,该链接不再有效。这是链接:http://news.ycombinator.com/item?id=1182005 最佳答案 所有字符串值都限制为512MiB。这是您可能最关心的大小限制。编辑:因为Redis中的键是字符串,所以最大键大小为512MiB。键的最大数量为2^3

message-queue - 如何使用 Celery 保证消息传递?

我有一个python应用程序,我想开始在后台做更多的工作,以便它在变得更忙时可以更好地扩展。过去,我使用Celery来执行正常的后台任务,效果很好。这个应用程序与我过去所做的其他应用程序之间的唯一区别是我需要保证这些消息得到处理,它们不会丢失。对于此应用程序,我不太关心消息队列的速度,我首先需要的是可靠性和耐用性。为了安全起见,我想有两个队列服务器,都在不同的数据中心以防出现问题,一个作为另一个的备份。看看Celery,它似乎支持许多不同的后端,其中一些具有比其他后端更多的功能。两个最流行的看起来像redis和RabbitMQ,所以我花了一些时间进一步研究它们。RabbitMQ:支持持

message-queue - 如何使用 Celery 保证消息传递?

我有一个python应用程序,我想开始在后台做更多的工作,以便它在变得更忙时可以更好地扩展。过去,我使用Celery来执行正常的后台任务,效果很好。这个应用程序与我过去所做的其他应用程序之间的唯一区别是我需要保证这些消息得到处理,它们不会丢失。对于此应用程序,我不太关心消息队列的速度,我首先需要的是可靠性和耐用性。为了安全起见,我想有两个队列服务器,都在不同的数据中心以防出现问题,一个作为另一个的备份。看看Celery,它似乎支持许多不同的后端,其中一些具有比其他后端更多的功能。两个最流行的看起来像redis和RabbitMQ,所以我花了一些时间进一步研究它们。RabbitMQ:支持持

celery笔记九之task运行结果查看

本文首发于公众号:Hunter后端原文链接:celery笔记九之task运行结果查看这一篇笔记介绍一下celery的task运行之后结果的查看。前面我们使用的配置是这样的:#settings.pyCELERY_RESULT_BACKEND="redis://localhost/1"是将task的运行结果保存在redis的第二个数据库(数据库索引从0开始)。我们还可以将task的运行结果保存到Django的数据库,这一篇笔记将介绍如何查看redis和Django数据库中task运行的结果。查看redis中的task结果使用Django数据库保存task结果1、查看redis中的task结果在re

celery笔记八之数据库操作定时任务

本文首发于公众号:Hunter后端原文链接:celery笔记八之数据库操作定时任务前面我们介绍定时任务是在celery.py中的app.conf.beat_schedule定义,这一篇笔记我们介绍一下如何在Django系统中的表里来操作这些任务。依赖及migrate操作beat的启动表介绍手动操作定时任务1、依赖安装及migrate操作我们先通过app.conf.beat_schedule定义定时任务:app.conf.beat_schedule={'add-every-60-seconds':{'task':'blog.tasks.add','schedule':60,'args':(16,