HashedDict
自定义字典
1 |
|
test
1 |
|
1 |
|
1 |
|
1 |
|
1 |
|
'''bash
py.test -v test_functions.py
py.test -v .
py.test -v test_functions.py
collected 3 items
test_functions.py::test_add_and_multiply FAILED [ 33%]
test_functions.py::test_add_and_multiply_mock PASSED [ 66%]
test_functions.py::test_add_and_multiply_mock2 PASSED [100%]
=============== FAILURES ============
___________test_add_and_multiply _____
def test_add_and_multiply():
x,y=3,5
addi, multi=add_and_multiply(x,y )
assert addi==8
assert multi==15E assert 25 == 15
E -25
E +15
test_functions.py:21: AssertionError
=============== 1 failed, 2 passed in 0.14s ===========
1 |
celery是一个基于分布消息传递的异步任务队列.它一定需要建立在一个分布的消息传递机制上,这个消息传递机制就是celery文档里常说的broker。
celery隐藏了rabbitmq接口的实现细节,既充当了publisher(client)又充当了consumer (worker)的角色。
'''思考一下,如果我们用rabbitmq自己实现任务队列,有一天我们不想用rabbit了怎么办?我们换个思维,如果没有celery,让你自己设计一个异步任务队列你怎么做。首先,要有一个发起任务的client,选定一定保存任务信息的媒介,由一个worker去一直监听这个信息媒介,这个worker最好是多进程的,另外可以兼容尽可能多得信息媒介。好吧,这个不就是celery所做的事儿么,celery兼容多个broker,既是任务发起者又是执行者,另外支持多进程…还有好多通用功能考虑。
'''
假设项目的目录结构是:
1 | task-- |
1 | # 启动消费者 |
1 | 在使用flower时遇到 'stats' inspect method failed , 最终通安装指定版本的kombu 解决 4.5.0 |
用以下的方法 没有成功
1 | :class="{ done: item.handled==1 , ignore: item.handled==2, ignore2: item.handled==3 }" > |
后来发现下面的方法更稳拓些 , 也方便调整
1 |
|
1 |
|
