Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.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 Couchbase在创建失败后立即打开存储桶_Python_Python 3.x_Couchbase - Fatal编程技术网

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)

我正在创建一些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)
        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(已生成,捕获协议错误):
----------------------------------------------------------------------
在本例中,创建并填充了bucket
test\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

您可以使用创建bucket以及SDK API公开的更多操作。

此外,问题是创建bucket是一个异步操作,因此在发出创建bucket请求和打开bucket之间需要延迟

在创建和打开存储桶之间添加类似的内容将有助于:

import time
time.sleep(5);

在远程集群上运行脚本时,您可能不会看到这种情况,因为它可能是一个具有更多资源(CPU/RAM)的专用集群,再加上网络延迟,会增加一点。

是的,我实际上注意到它是异步的。有没有更好的方法不用睡觉?我能用一些
onCallback()使它工作吗
import time
time.sleep(5);