Python 在RMQ中关闭动态电铲是否是一种良好的做法?
我有一个用例,我必须将MSG从dlq移动到队列。我已经在ECS容器中使用python以编程方式创建了动态铲Python 在RMQ中关闭动态电铲是否是一种良好的做法?,python,rabbitmq,Python,Rabbitmq,我有一个用例,我必须将MSG从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'}
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连接问题?一旦达到目的,发布删除铲是否是一种良好的做法。还有其他更好的方法吗
另外,我正在监视队列,以检查传入的MSG到DLQ。因此,我可以选择在一天中以设定的频率运行上述功能。事实证明,可以有两种动态铲。一个不会自动删除,另一个会自动删除
在上面的帖子中创建的铲子使用了一个名为
src delete after
的属性,这意味着在创建铲子之前,它会记录源队列中itmems的数量,然后在传输了那么多项目后将其自身删除。事实证明,可以有两种动态铲子。一个不会自动删除,另一个会自动删除
在上面的帖子中创建的电铲使用了一个名为src delete after
的属性,这意味着在创建电铲之前,它会在源队列中记录ITMEM的数量,然后在传输完那么多项目后将其自身删除