![](/img/trans.png)
[英]Is it good practice to open a file for reading, get the data, close it and then reopen it for writing?
[英]Is it a good practice to close dynamic shovel in RMQ?
我有一個用例,我必須將 msgs 從 dlq 移動到隊列。 我在 ECS 容器中使用 python 以編程方式創建了動態鏟子。
def shovel_messsages(self, source_queue, dest_queue, message_count):
hostname = os.environ['HOSTNAME']
vhost = os.environ['RABBIT_VHOST']
headers = {'content-type':'application/json'}
user_name = os.environ['RABBIT_USERNAME']
milli_sec = int(round(time.time() * 1000))
shovel_name = 'test_{0}'.format(milli_sec)
request_data = {
"value":{
"src-protocol": "amqp091",
"src-uri": "amqp://"+user_name+"@/"+ vhost,
"src-queue": source_queue,
"dest-protocol": "amqp091", "dest-uri": "amqp://"+user_name+"@/"+vhost,
"dest-queue": dest_queue,
"src-delete-after" : "queue-length"}
}
url = "http://{0}/api/parameters/shovel/{1}/{2}".format(hostname, vhost, shovel_name)
response = requests.put(url=url, auth=(os.environ['RABBIT_USERNAME'],os.environ['RABBIT_PASSWORD']), data = json.dumps(request_data))
所有這些都運行良好。 現在我的問題是,在生產中打開這么多動態鏟會導致某種限制或任何此類 RMQ 連接問題嗎? 一旦達到目的,發出 DELETE 鏟子是否是一種好習慣。 還有其他更好的方法嗎?
PS - 我正在監視隊列以檢查傳入 dlqs 的消息。 所以我可以選擇全天以設定的頻率運行上述功能。
事實證明,可以有兩種動力鏟。 一種不會自動刪除,另一種會自動刪除。
上面帖子中創建的 shovel 使用了一個名為src-delete-after
的屬性src-delete-after
這意味着在創建 shovel 之前,它會記錄源隊列中的 itmems 數量,然后在完成傳輸這么多項目后刪除自身。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.