我是RabbitMQ等消息代理的新手,我们可以使用它来为Celery等调度系统创建任务/消息队列.
现在,问题是:
我可以在PostgreSQL中创建一个表,它可以附加新任务并由Celery等消费者程序使用.
为什么我想为RabbitMQ设置一个全新的技术?
现在,我认为扩展不能成为答案,因为像PostgreSQL这样的数据库可以在分布式环境中工作.
我搜索了数据库为特定问题提出的问题,我发现:
现在,RabbitMQ或任何其他类似的消息代理如何解决这些问题?
此外,我发现AMQP
协议是它所遵循的.那有什么好处的?
可以Redis的也可以用作消息代理?我发现它更类似于memcache然后是RabbitMQ.
请注意这个!
如何在不知道task_id
每个任务的情况下删除所有待处理任务?
Celery文档提到在Django中测试Celery,但如果你没有使用Django,则没有解释如何测试Celery任务.你怎么做到这一点?
我无法理解"分布式任务队列"的用途.例如,python的芹菜库.
我知道在celery,python框架中,你可以设置定时窗口来执行函数.但是,这也可以在针对python脚本的linux crontab中轻松完成.
据我所知,并且从我自己的django-celery webapps中显示,芹菜消耗的RAM内存比设置原始crontab要多得多.一个相对较小的应用程序几百MB差异.
有人可以帮助我这个区别吗?也许对任务队列/ crontabs如何工作的高级解释也很好.
谢谢.
如何检查任务是否在芹菜中运行(具体来说,我使用的是celery-django)?
我已经阅读了文档,而且我用谷歌搜索了,但我看不到像这样的电话:
my_example_task.state() == RUNNING
Run Code Online (Sandbox Code Playgroud)
我的用例是我有一个用于转码的外部(java)服务.当我发送要转码的文档时,我想检查运行该服务的任务是否正在运行,如果没有,则(重新)启动它.
我正在使用目前的稳定版本 - 2.4,我相信.
我一直在阅读文档和搜索,但似乎无法找到一个直接的答案:
你能取消已经执行的任务吗?(在任务开始时,需要一段时间,需要取消一半)
我在Celery FAQ的文档中找到了这个
>>> result = add.apply_async(args=[2, 2], countdown=120)
>>> result.revoke()
Run Code Online (Sandbox Code Playgroud)
但我不清楚这是否会取消排队的任务,或者它是否会杀死一个正在运行的进程.感谢您可以放下任何光线!
我正试图从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//
- ** ---------- . loader: celery.loaders.default.Loader
- ** ---------- . logfile: [stderr]@INFO
- ** ---------- . concurrency: 4
- ** ---------- . events: OFF
- *** --- * …
Run Code Online (Sandbox Code Playgroud) 我正在尝试为我们的django-celery项目提出测试方法.我已经阅读了文档中的注释,但它并没有让我对实际操作有什么了解.我并不担心测试实际守护进程中的任务,只是我的代码的功能.主要是我想知道:
task.delay()
在测试期间绕过(我尝试过设置,CELERY_ALWAYS_EAGER = True
但没有区别)?manage.py test
或者我们必须使用自定义跑步者吗?总的来说,使用芹菜进行测试的任何提示或技巧都会非常有用.
celery ×10
python ×8
django ×3
rabbitmq ×2
redis ×2
unit-testing ×2
celery-task ×1
postgresql ×1
python-rq ×1
task ×1
web-services ×1