Python Couchbase在创建失败后立即打开存储桶
我正在创建一些python脚本,用于自动测试一些Couchbase操作 执行此代码时出现意外情况:Python Couchbase在创建失败后立即打开存储桶,python,python-3.x,couchbase,Python,Python 3.x,Couchbase,我正在创建一些python脚本,用于自动测试一些Couchbase操作 执行此代码时出现意外情况: for i in range(0, BUCKETS_AMOUNT): # BUCKETS_AMOUNT = 4 bucket_name = '%s%s' % (BUCKET_NAME_PREFIX, i) # BUCKET_NAME_PREFIX = 'test_bck_' print('Creating bucket: %s' % bucket_name)
for i in range(0, BUCKETS_AMOUNT): # BUCKETS_AMOUNT = 4
bucket_name = '%s%s' % (BUCKET_NAME_PREFIX, i) # BUCKET_NAME_PREFIX = 'test_bck_'
print('Creating bucket: %s' % bucket_name)
admin.bucket_create(bucket_name, ram_quota=512, replicas=1)
print('Opening bucket: %s' % bucket_name)
bucket = cluster.open_bucket(bucket_name)
print('Bucket: %s' % bucket)
inserted_data[bucket_name] = _fill_bucket(bucket)
正在创建bucket:test\u bck\u 0
打开铲斗:测试\u bck\u 0
E
======================================================================
错误:测试备份(\uuuuu main\uuuuuu.TestBackup)
----------------------------------------------------------------------
回溯(最近一次呼叫最后一次):
文件“couchbase\u backup\u test.py”,第29行,在test\u backup中
预期=创建和填充测试存储桶(self.cluster、self.admin)
文件“/u01/app/couchbase/bucket\u data\u util.py”,第41行,在创建和填充测试存储桶中
bucket=cluster.open\u bucket(bucket\u name)
文件“/u01/app/couchbase/env_cb/lib/python3.6/site packages/couchbase/cluster.py”,第144行,在open_bucket中
rv=自桶级(str(connstr),**kwargs)
文件“/u01/app/couchbase/env_cb/lib/python3.6/site packages/couchbase/bucket.py”,第273行,在__
self.\u do\u ctor\u connect()
文件“/u01/app/couchbase/env_cb/lib/python3.6/site packages/couchbase/bucket.py”,第282行,位于“连接”
self._connect()
couchbase.exceptions.\u协议错误\u 0x16(已生成,捕获协议错误):
----------------------------------------------------------------------
在本例中,创建并填充了buckettest\u bck\u 0
,但似乎在创建它之前就试图打开test\u bck\u 1
。
当我远程执行这段代码时,一切都很完美。但我需要从实际节点本地运行这个。
有轻微的版本差异,但我没有可能调整
Couchbase服务器版本:5.1
它可以从以下位置远程工作:
- 操作系统:Windows7x64
- Python:3.4.4
- 沙发床:2.3.5
- 操作系统:红帽企业7.5
- Python:3.6.3
- 沙发床:2.4.0
import time
time.sleep(5);
在远程集群上运行脚本时,您可能不会看到这种情况,因为它可能是一个具有更多资源(CPU/RAM)的专用集群,再加上网络延迟,会增加一点。是的,我实际上注意到它是异步的。有没有更好的方法不用睡觉?我能用一些
onCallback()使它工作吗?
import time
time.sleep(5);