Python 烧瓶卡桑德拉芹菜连接

Python 烧瓶卡桑德拉芹菜连接,python,flask,cassandra,celery,datastax-enterprise,Python,Flask,Cassandra,Celery,Datastax Enterprise,我试图在芹菜工作者进程启动时创建cassandra连接,在工作者关闭时关闭连接 我正在使用下面的代码 thread_local = threading.local() @worker_process_init.connect def open_cassandra_session(*args, **kwargs): auth_provider = DSEPlainTextAuthProvider(username='simpl1', password='********') cluste

我试图在芹菜工作者进程启动时创建cassandra连接,在工作者关闭时关闭连接

我正在使用下面的代码

thread_local = threading.local()

@worker_process_init.connect
def open_cassandra_session(*args, **kwargs):
  auth_provider = DSEPlainTextAuthProvider(username='simpl1', password='********')
  cluster = Cluster( ['public_ip1','public_ip2','public_ip3'], port=9042, auth_provider=auth_provider, address_translator=IdentityTranslator())
  session = cluster.connect('keyspace1')
  thread_local.cassandra_session = session

@worker_process_shutdown.connect
def close_cassandra_session(*args,**kwargs):
  session = thread_local.cassandra_session
  session.shutdown()
  thread_local.cassandra_session = None
当我启动芹菜工人时,我得到以下错误

[2017-06-28 14:39:31,805: WARNING/PoolWorker-1] Downgrading core protocol version from 65 to 4 for 54.255.180.2. To avoid this, it is best practice to explicitly set Cluster(protocol_version) to the version supported by your cluster. http://docs.datastax.com/en/developer/python-driver-dse/latest/api/dse/cluster.html#dse.cluster.Cluster.protocol_version
[2017-06-28 14:39:32,268: INFO/PoolWorker-1] Using datacenter 'ap-southeast_1_cassandra' for DCAwareRoundRobinPolicy (via host '54.255.180.2'); if incorrect, please specify a local_dc to the constructor, or limit contact points to local cluster nodes
[2017-06-28 14:39:32,268: INFO/PoolWorker-1] New Cassandra host <Host: 172.31.0.4 ap-southeast_1_cassandra> discovered
[2017-06-28 14:39:32,270: INFO/PoolWorker-1] New Cassandra host <Host: 172.31.10.93 ap-southeast_1_cassandra> discovered
[2017-06-28 14:39:32,270: INFO/PoolWorker-1] New Cassandra host <Host: 172.31.20.239 ap-southeast_1_cassandra> discovered
[2017-06-28 14:39:32,270: INFO/PoolWorker-1] Cassandra host 54.169.86.45 removed
[2017-06-28 14:39:32,271: INFO/PoolWorker-1] Cassandra host 54.169.132.4 removed
[2017-06-28 14:39:32,271: INFO/PoolWorker-1] Cassandra host 54.169.10.56 removed
[2017-06-28 14:39:32,659: INFO/MainProcess] mingle: all alone
[2017-06-28 14:39:32,672: INFO/MainProcess] celery@SanthavathisMBP ready.
[2017-06-28 14:39:37,578: WARNING/PoolWorker-1] Failed to create connection pool for new host 172.31.0.4:
Traceback (most recent call last):
  File "dse/cluster.py", line 2217, in dse.cluster.Session.add_or_renew_pool.run_add_or_renew_pool (dse/cluster.c:41176)
    new_pool = HostConnection(host, distance, self)
  File "dse/hosts.py", line 329, in dse.hosts.HostConnection.__init__ (dse/hosts.c:5903)
    self._connection = session.cluster.connection_factory(host.address)
  File "dse/cluster.py", line 1025, in dse.cluster.Cluster.connection_factory (dse/cluster.c:14184)
    return self.connection_class.factory(address, self.connect_timeout, *args, **kwargs)
  File "dse/connection.py", line 382, in dse.connection.Connection.factory (dse/connection.c:8213)
    conn = cls(host, *args, **kwargs)
  File "/Users/santha/Downloads/flask/lib/python2.7/site-packages/dse/io/asyncorereactor.py", line 294, in __init__
    self._connect_socket()
  File "dse/connection.py", line 421, in dse.connection.Connection._connect_socket (dse/connection.c:9522)
    raise socket.error(sockerr.errno, "Tried connecting to %s. Last error: %s" % ([a[4] for a in addresses], sockerr.strerror or sockerr))
error: [Errno None] Tried connecting to [('172.31.0.4', 9042)]. Last error: timed out
[2017-06-28 14:39:37,898: WARNING/PoolWorker-1] Failed to create connection pool for new host 172.31.20.239:
Traceback (most recent call last):
  File "dse/cluster.py", line 2217, in dse.cluster.Session.add_or_renew_pool.run_add_or_renew_pool (dse/cluster.c:41176)
    new_pool = HostConnection(host, distance, self)
  File "dse/hosts.py", line 329, in dse.hosts.HostConnection.__init__ (dse/hosts.c:5903)
    self._connection = session.cluster.connection_factory(host.address)
  File "dse/cluster.py", line 1025, in dse.cluster.Cluster.connection_factory (dse/cluster.c:14184)
    return self.connection_class.factory(address, self.connect_timeout, *args, **kwargs)
  File "dse/connection.py", line 382, in dse.connection.Connection.factory (dse/connection.c:8213)
    conn = cls(host, *args, **kwargs)
  File "/Users/santha/Downloads/flask/lib/python2.7/site-packages/dse/io/asyncorereactor.py", line 294, in __init__
    self._connect_socket()
  File "dse/connection.py", line 421, in dse.connection.Connection._connect_socket (dse/connection.c:9522)
    raise socket.error(sockerr.errno, "Tried connecting to %s. Last error: %s" % ([a[4] for a in addresses], sockerr.strerror or sockerr))
error: [Errno None] Tried connecting to [('172.31.20.239', 9042)]. Last error: timed out
[2017-06-28 14:39:37,900: WARNING/PoolWorker-1] Host 172.31.0.4 has been marked down
[2017-06-28 14:39:37,901: WARNING/PoolWorker-1] Host 172.31.20.239 has been marked down
[2017-06-28 14:39:42,588: WARNING/PoolWorker-1] Failed to create connection pool for new host 172.31.10.93:
Traceback (most recent call last):
  File "dse/cluster.py", line 2217, in dse.cluster.Session.add_or_renew_pool.run_add_or_renew_pool (dse/cluster.c:41176)
    new_pool = HostConnection(host, distance, self)
  File "dse/hosts.py", line 329, in dse.hosts.HostConnection.__init__ (dse/hosts.c:5903)
    self._connection = session.cluster.connection_factory(host.address)
  File "dse/cluster.py", line 1025, in dse.cluster.Cluster.connection_factory (dse/cluster.c:14184)
    return self.connection_class.factory(address, self.connect_timeout, *args, **kwargs)
  File "dse/connection.py", line 382, in dse.connection.Connection.factory (dse/connection.c:8213)
    conn = cls(host, *args, **kwargs)
  File "/Users/santha/Downloads/flask/lib/python2.7/site-packages/dse/io/asyncorereactor.py", line 294, in __init__
    self._connect_socket()
  File "dse/connection.py", line 421, in dse.connection.Connection._connect_socket (dse/connection.c:9522)
    raise socket.error(sockerr.errno, "Tried connecting to %s. Last error: %s" % ([a[4] for a in addresses], sockerr.strerror or sockerr))
error: [Errno None] Tried connecting to [('172.31.10.93', 9042)]. Last error: timed out
[2017-06-28 14:39:43,933: WARNING/PoolWorker-1] Error attempting to reconnect to 172.31.0.4, scheduling retry in 2.0 seconds: [Errno None] Tried connecting to [('172.31.0.4', 9042)]. Last error: timed out
[2017-06-28 14:39:43,934: WARNING/PoolWorker-1] Host 172.31.10.93 has been marked down
[2017-06-28 14:39:31805:WARNING/PoolWorker-1]将54.255.180.2的核心协议版本从65降级为4。为了避免这种情况,最好将集群(协议_版本)显式设置为集群支持的版本。http://docs.datastax.com/en/developer/python-driver-dse/latest/api/dse/cluster.html#dse.cluster.Cluster.protocol_version
[2017-06-28 14:39:32268:INFO/PoolWorker-1]使用数据中心“ap-southeast_1_cassandra”实现DCAwareRoundRobinPolicy(通过主机“54.255.180.2”);如果不正确,请为构造函数指定本地\u dc,或将接触点限制为本地群集节点
[2017-06-28 14:39:32268:INFO/PoolWorker-1]发现新的卡桑德拉主机
[2017-06-28 14:39:32270:INFO/PoolWorker-1]发现新的卡桑德拉主机
[2017-06-28 14:39:32270:INFO/PoolWorker-1]发现新的卡桑德拉主机
[2017-06-28 14:39:32270:INFO/PoolWorker-1]Cassandra主机54.169.86.45已删除
[2017-06-28 14:39:32271:INFO/PoolWorker-1]Cassandra主机54.169.132.4已删除
[2017-06-28 14:39:32271:INFO/PoolWorker-1]Cassandra主机54.169.10.56已删除
[2017-06-28 14:39:32659:INFO/MainProcess]mingle:独自一人
[2017-06-2814:39:32672:INFO/MainProcess]celery@SanthavathisMBP准备好的
[2017-06-28 14:39:37578:警告/PoolWorker-1]无法为新主机172.31.0.4创建连接池:
回溯(最近一次呼叫最后一次):
文件“dse/cluster.py”,第2217行,在dse.cluster.Session.add_或_renew_pool.run_add_或_renew_pool(dse/cluster.c:41176)中
新池=主机连接(主机、距离、自身)
文件“dse/hosts.py”,第329行,在dse.hosts.HostConnection.\uuuu init\uuuuu(dse/hosts.c:5903)中
self.\u connection=session.cluster.connection\u工厂(host.address)
文件“dse/cluster.py”,第1025行,在dse.cluster.cluster.connection_工厂(dse/cluster.c:14184)中
返回self.connection\u class.factory(地址,self.connect\u超时,*args,**kwargs)
文件“dse/connection.py”,第382行,在dse.connection.connection.factory(dse/connection.c:8213)中
conn=cls(主机,*args,**kwargs)
文件“/Users/santha/Downloads/flask/lib/python2.7/site packages/dse/io/asyncorerereactor.py”,第294行,在__
自连接插座()
文件“dse/connection.py”,第421行,在dse.connection.connection.\u connect\u socket(dse/connection.c:9522)中
raise SOCKERT.error(sockerr.errno,“尝试连接到%s。上一个错误:%s”%([a[4]表示in地址]、sockerr.strerror或sockerr))
错误:[Errno None]尝试连接到[('172.31.0.4',9042)]。最后一个错误:超时
[2017-06-28 14:39:37898:警告/PoolWorker-1]无法为新主机172.31.20.239创建连接池:
回溯(最近一次呼叫最后一次):
文件“dse/cluster.py”,第2217行,在dse.cluster.Session.add_或_renew_pool.run_add_或_renew_pool(dse/cluster.c:41176)中
新池=主机连接(主机、距离、自身)
文件“dse/hosts.py”,第329行,在dse.hosts.HostConnection.\uuuu init\uuuuu(dse/hosts.c:5903)中
self.\u connection=session.cluster.connection\u工厂(host.address)
文件“dse/cluster.py”,第1025行,在dse.cluster.cluster.connection_工厂(dse/cluster.c:14184)中
返回self.connection\u class.factory(地址,self.connect\u超时,*args,**kwargs)
文件“dse/connection.py”,第382行,在dse.connection.connection.factory(dse/connection.c:8213)中
conn=cls(主机,*args,**kwargs)
文件“/Users/santha/Downloads/flask/lib/python2.7/site packages/dse/io/asyncorerereactor.py”,第294行,在__
自连接插座()
文件“dse/connection.py”,第421行,在dse.connection.connection.\u connect\u socket(dse/connection.c:9522)中
raise SOCKERT.error(sockerr.errno,“尝试连接到%s。上一个错误:%s”%([a[4]表示in地址]、sockerr.strerror或sockerr))
错误:[Errno None]尝试连接到[('172.31.20.239',9042)]。最后一个错误:超时
[2017-06-28 14:39:37900:WARNING/PoolWorker-1]主机172.31.0.4已被标记
[2017-06-28 14:39:37901:WARNING/PoolWorker-1]主机172.31.20.239已被标记
[2017-06-28 14:39:42588:警告/PoolWorker-1]无法为新主机172.31.10.93创建连接池:
回溯(最近一次呼叫最后一次):
文件“dse/cluster.py”,第2217行,在dse.cluster.Session.add_或_renew_pool.run_add_或_renew_pool(dse/cluster.c:41176)中
新池=主机连接(主机、距离、自身)
文件“dse/hosts.py”,第329行,在dse.hosts.HostConnection.\uuuu init\uuuuu(dse/hosts.c:5903)中
self.\u connection=session.cluster.connection\u工厂(host.address)
文件“dse/cluster.py”,第1025行,在dse.cluster.cluster.connection_工厂(dse/cluster.c:14184)中
返回self.connection\u class.factory(地址,self.connect\u超时,*args,**kwargs)
文件“dse/connection.py”,第382行,在dse.connection.connection.factory(dse/connection.c:8213)中
conn=cls(主机,*args,**kwargs)
文件“/Users/santha/Downloads/flask/lib/python2.7/site packages/dse/io/asyncorerereactor.py”,第294行,在__
自连接插座()
文件“dse/connection.py”,第421行,在dse.connection.connection.\u connect\u socket(dse/connection.c:9522)中
raise SOCKERT.error(sockerr.errno,“尝试连接到%s。上一个错误:%s”%([a[4]表示in地址]、sockerr.strerror或sockerr))
错误:[Errno None]尝试连接到[('172.31.10.93',9042)]。最后一个错误:超时
[2017-06-28 14:39:43933:警告/PoolWorker-1]尝试重新连接到172.31.0.4时出错,计划在2.0秒后重试:[Errno None]尝试连接到[('172.31.0.4',9042)]。最后一个错误:超时
[2017-06-28 14:39:43934:WARNING/PoolWorker-1]主机172.31.10.93已被标记
它忽略了address_translator=IdentityTranslator()设置,这意味着不进行地址转换使用集群配置中提供的地址