0、獲取原生鏈結後,可以參考官方文件
celery,操作mq,有分為:低層次:py-amqp
,高層次:kombu
1、通過celery,獲取原生的rabbitmq鏈結進行操作
案例:生產者與消費者
#生產者from django_celery_project import
with conn.channel() as channel:
producer =producer(channel)
from kombu import
exchange, queue
task_queue = queue('
tasks
', exchange('
tasks
'), routing_key='
tasks')
producer.publish(
,retry=true,
exchange=task_queue.exchange,
routing_key=task_queue.routing_key,
declare=[task_queue], #
declares exchange, queue and binds.)#
消費者def
callback(body, message):
(body)
message.ack()
from django_celery_project import
task_queue = queue('
tasks
', exchange('
tasks
'), routing_key='
tasks')
with conn.channel() as channel:
consumer = conn.consumer(queues=task_queue, channel=channel)
consumer.register_callback(callback)
with consumer:
conn.drain_events(timeout=1)
2、通過celery獲取鏈結,實現獲取佇列大小
獲取佇列大小的作用,就是在刪除佇列之前一定在判斷佇列還有沒有資料,有資料的話,不能被刪除
from django_celery_project import#tasks 是佇列名字
print(broker_connection.channel().basic_get('
tasks
', no_ack=false).delivery_info)
print(broker_connection.channel().basic_get('
tasks
', no_ack=false).headers)
執行結果
<==message_count 就是佇列的大小,記得再加上1,才是總的數量
, 'delivery_mode
': 2, '
priority
': 0}
3、通過celery獲取鏈結,刪除佇列和交換介面
from django_celery_project importbroker_connection.channel().exchange_delete(
'tasks
') # 填寫刪除的交換介面
broker_connection.channel().queue_delete(
'tasks
') # 填寫刪除的佇列名字
# 其它定義交換介面,佇列,繫結關係,都在 broker_connection.channel() 進行呼叫
scala入門 (五) scala高階函式用法
前言 上一節對scala的匹配模式,做了乙個大致的介紹。這一節將對scala的高階函式進行乙個入門。作為一門函式式程式語言,想要用好這門語言,scala函式的高階用法還是比較重要的。同樣再介紹相關知識的時候,會和python進行對比。字串高階操作 格式化字串操作 在python中格式字串的方式比較多...
python高階用法 Python高階用法
python高階用法 三元表示式 x 10 y 20 print x if x y else y x 100 y 20 print x if x y else y 列表推導式和生成器 列表推導式 print i for i in range 10 print i 2 for i in range 1...
input高階用法
1.取消按鈕按下時的虛線框 在input裡新增屬性值 hidefocus 或者 hidefocus true 2.唯讀文字框內容 在input裡新增屬性值 readonly 3.防止退後清空的text文件 可把style內容做做為類引用 4.enter鍵可以讓游標移到下乙個輸入框 5.只能為中文 有...