Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在RMQ中关闭动态电铲是否是一种良好的做法?_Python_Rabbitmq - Fatal编程技术网

Python 在RMQ中关闭动态电铲是否是一种良好的做法?

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'}

我有一个用例,我必须将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'}
    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的数量,然后在传输完那么多项目后将其自身删除