命令行程序将rabbitmq中的任务排队以供芹菜处理

celery-enqueue的Python项目详细描述


#芹菜队列

[芹菜](http://www.celleryproject.org/)是一个分布式任务队列
对于python,它使用[rabbitmq](https://www.rabbitmq.com/)(或
[redis](https://redis.io/))作为状态。

芹菜中通常的模式是有任务实现和
在同一个队列中排队/调度任务的代码。应用:


`` python
``在tasks.py


dedoit(arg):

````
``
`` python
``在app.py
` ` ` ` ` ` ` ` ` ` ` ` ` `在app.py
result=doit.delay(123)
` ` ` ` ` ` `(123)
` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` br/>rabbitmq)至连接他们。不幸的是,如果没有本地可用的
`tasks.py`文件,芹菜就无法轻松地安排“doit”任务。


来源:

```
$git clone https://github.com/unchained capital/cellery enqueue
$cd cellery enqueue
$make
````

尝试使用“-h”标志运行它以查看更多详细信息:

````
$celeri enqueue-h
````

您可以运行:

```
$celeriy将my_app.task s.my_task arg1 arg2
```

将带有参数“('arg1',
'arg2')”的任务“my_app.tasks.my_task”排队到本地rabbitmq代理的“celeriy”队列中。这应该与在应用程序中运行“my_app.tasks.my_task.delay”(arg1,
“arg2”)相同。

使用'pip',并且rabbitmq服务器
在默认端口本地运行,没有自定义vhost、用户或
安全性,您可以从芹菜队列导入队列
enqueue(“我的应用程序任务.我的任务”,“arg1”,“arg2”])
```



“arg2”)进入本地RabbitMQ代理的“芹菜”队列。这应该与在应用程序中运行“my-app.tasks.my-task.delay”(arg1,
“arg2”)相同。

“arg2”]
```

脚本将尝试连接到默认端口(5672)上的
本地rabbitmq服务器上的vhost`/`而不进行
身份验证。


以下配置设置会影响此默认行为:

*`user`--rabbitmq用户的名称
*`password`--rabbitmq用户的密码
*`host`--主机名或rabbitmq代理的ip
*`port`--rabbitmq代理的端口
*`vhost`--芹菜使用的rabbitmq vhost
*`queue`--芹菜使用的rabbitmq队列

这些设置可以通过
配置文件在命令行上提供,或者通过调用“set_config”。

n STACKTrand并以非零
返回代码退出。
< BR> >以下配置设置影响此默认行为:
BR/> *‘成功’-使“芹菜入队”始终以0的
*`%e`--异常的错误消息
*`%u`--rabbitmq代理的(屏蔽的)url
*`%t`--任务的名称
*`%a`--任务的参数

(只有设置了“success”后,“error\u命令”才会运行。)

一个简单的示例,通过配置文件处理:

``yaml
```

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java无法启动应用程序:JNLP错误   java根据用户输入在PreparedStatement中使用setTime()或setNull()   java EJB与同步   java以object为键通过hashmap进行搜索   java中的模10^9+7   针对包含其他对象的对象的java OOP最佳实践   如何将字符串作为HTML代码从Java文件读取到JSP页面?   java我的POM怎么了?“解析表达式..检测到递归表达式循环”   用于Hbase的Mapreduce的java NoSuchMethodError   JAVAlang.SecurityException:权限拒绝:启动意图{act=安卓.Intent.action.MAIN cat=[安卓.Intent.category.LAUNCHER]   数组初始化谜语Java   通过arraylist搜索时的java句柄关联