我开始将我的代码迁移到boto 3,我注意到一个不错的补充是服务员。
我想从db实例创建一个快照,并在继续使用代码之前检查它的可用性。
我的做法如下:
# Notice: Step : Check snapshot availability [1st account - Oregon]
print "--- Check snapshot availability [1st account - Oregon] ---"
new_snap = client1.describe_db_snapshots(DBSnapshotIdentifier=new_snapshot_name)['DBSnapshots'][0]
# print pprint.pprint(new_snap) #debug
waiter = client1.get_waiter('db_snapshot_completed')
print "Manual snapshot is -pending-"
sleep(60)
waiter.wait(
DBSnapshotIdentifier = new_snapshot_name,
IncludeShared = True,
IncludePublic = False
)
print "OK. Manual snapshot is -available-"
,但文件上说,它每15秒对状态进行40次轮询。那是10分钟。然而,一个相当大的数据库将需要更多。
我怎么能用服务员来减轻这一点呢?
我认为另一个答案暗示了这一解决办法,但在这里它是明确的。
[snip]
...
# Create your waiter
waiter_db_snapshot = client1.get_waiter('db_snapshot_completed')
# Increase the max number of tries as appropriate
waiter_db_snapshot.config.max_attempts = 120
# Add a 60 second delay between attempts
waiter_db_snapshot.config.delay = 60
print "Manual snapshot is -pending-"
....
[snip]
如果你愿意的话,你可以不用服务员。
根据该服务员的文档:每隔15秒轮询RDS.Client.description_db_snapshots(),直到达到成功状态。检查失败40次后返回错误。
基本上,这意味着它可以执行以下操作:
RDS = boto3.client('rds')
RDS.describe_db_snapshots()
您可以直接运行它,但要过滤到快照id,下面是语法。http://boto3.readthedocs.io/en/latest/reference/services/rds.html#RDS.Client.describe_db_snapshots
response = client.describe_db_snapshots(
DBInstanceIdentifier='string',
DBSnapshotIdentifier='string',
SnapshotType='string',
Filters=[
{
'Name': 'string',
'Values': [
'string',
]
},
],
MaxRecords=123,
Marker='string',
IncludeShared=True|False,
IncludePublic=True|False
)
这将最终看起来像这样:
snapshot_description = RDS.describe_db_snapshots(DBSnapshotIdentifier='YOURIDHERE')
然后您可以循环,直到返回可用的快照。所以这里有一个非常粗略的想法。
import boto3
import time
RDS = boto3.client('rds')
RDS.describe_db_snapshots()
snapshot_description = RDS.describe_db_snapshots(DBSnapshotIdentifier='YOURIDHERE')
while snapshot_description['DBSnapshots'][0]['Status'] != 'available' :
print("still waiting")
time.sleep(15)
snapshot_description = RDS.describe_db_snapshots(DBSnapshotIdentifier='YOURIDHERE')
服务员有配置参数'延迟'和'max_attempts'如下:
waiter = rds_client.get_waiter('db_instance_available')
print( "waiter delay: " + str(waiter.config.delay) )
waiter.pygithub
问题内容: 有一个ArrayList存储整数值。我需要在此列表中找到最大值。例如,假设arrayList存储的值为:,最大值为。 寻找最大值的有效方法是什么? @Edit:我只是找到一个不确定的解决方案 这将返回最大值。 比较每个值的另一种方法,例如 问题答案: 你可以使用轻松实现所需的内容- 高效阅读 -足够的 Javadoc for Collections.max 根据其元素的自然顺序返回给定
RDS实例即虚拟化的关系型数据库服务器。 RDS实例即虚拟化的关系型数据库服务器。用户可以在RDS实例中创建或管理多个数据库。目前 云联壹云 平台已支持对接并创建阿里云、华为云、腾讯云、谷歌云和HCSO的RDS实例;AWS、Azure、京东云、腾讯云TDSQL暂只支持同步。其他平台正在陆续支持中。 使用流程 在 云联壹云 平台上创建阿里云、华为云、腾讯云、谷歌云、HCSO的RDS实例,请参考新建R
在Spring中,如果我定义了一个原型bean,我可以在Spring Framework4.3.0.Release的当前时间使用查找方法注入来注入它。 在Grails中,如何在运行时注入原型bean?Grails 2.5.4文档展示了如何设置和,但实际上并没有给出如何注入非单件bean的示例。
我需要下载一些大文件( 据我所读,有两种联系。数据和控制通道,其中数据通道似乎工作正常(我可以完全下载文件),但控制通道同时超时。我还了解到ftplib(和其他python ftp库)不适合大文件,可能只支持1GB左右的文件。这里有一个与此主题类似的问题:如何通过ftp(带监控)下载python中的大文件 我当前的代码如下所示: 我可以使用它或其他支持大文件的库吗?
坦率地说,我甚至不知道这是否可能。但我想做的是如下所示。 > 我通过终端中的javac命令从ClassFile.java制作了一个类文件。 然后我想从. java文件或. class文件中获取一个实例。 接下来,我在eclipse中做了另一个项目,因为你猜这个项目路径和上面的文件路径完全不同。例如,ClassFile.java/class文件可以位于“下载”文件夹中,另一方面,新的eclipse项
我有以下类桥联图: 我将JUnit测试用例编写为: 但我不知道该断言什么: