cassandra - datastax python driver connection time-out with multiprocessing -


निम्न उदाहरण:

  से cassandra.ecoder आयात क्लस्टर से cassandra.decoder आयात * आयात बहु प्रसंस्करण def async_query_process (लॉक, i, process_num): अगर i & lt; Process_num: lock.acquire () क्लस्टर = क्लस्टर (['नेप्च्यून']) सत्र = क्लस्टर.कनेक्ट ('मर्क्यूअर') session.row_factory = tuple_factory lock.release () प्रक्रिया = बहुप्रोसेसिंग.प्रक्रिया (नाम = 'प्रक्रिया' + str (I + 1), लक्ष्य = async_query_process, args = (लॉक, i + 1, 2)) process.start () lock = multiprocessing.Lock () प्रक्रिया = multiprocessing.Process (नाम = 'प्रक्रिया' + str (0) , लक्ष्य = async_query_process, # cluster_ip_list = self.cluster_ip_list, keyspace = self.keyspace, args = (लॉक, 0, 2)) process.start ()  

निम्न त्रुटि देता है: < / P>

  ट्रेसबैक (सबसे हाल का कॉल अंतिम): फ़ाइल "/usr/lib/python2.7/multiprocessing/process.py", पंक्ति 258, _bootstrap self.run () फ़ाइल में "/ usr / Lib / python2.7 / multiprocessing / process.py ", पंक्ति 114, चलाने के लिए self._target (* self._args, ** self._kwargs) फ़ाइल" test_api.py ", पंक्ति 14, Async_query_process सत्र में = cluster.connect ('mercure') फ़ाइल "/home/nkou/workProd/local/lib/python2.7/site-packages/cassandra/cluster.py", पंक्ति 483, से कनेक्ट self.control_connection.connect ("फ़ाइल" / home / nkou / workprod /local/lib/python2.7/site-packages/cassandra/cluster.py ", पंक्ति 1369, से कनेक्ट स्वयं। _set_new_connection (self._reconnect_internal ()) फ़ाइल" / home / Nkou / workprod / local / lib / python2.7 / site-packages / cassandra / cluster.py ", पंक्ति 1405, _reconnect_internal बढ़ाएँ NoHostAvailable (" किसी भी सर्वर से कनेक्ट करने में असमर्थ ", त्रुटियाँ) NoHostAvailable: ('कनेक्ट करने में असमर्थ किसी भी सर्वर ',' नेप्टीन ': ऑपरेशनटिमेडऑट (' त्रुटियाँ = नया कनेक्शन बनाने का समय समाप्त हो गया है, अंतिम_होस्ट = कोई नहीं ',)})  

यह डेटास्टैक्स पायथन ड्राइवर डॉक्टर में वर्णित है जो क्लस्टर और सत्र के उदाहरणों को फोर्किंग के बाद बनाया जाना चाहिए, यही वजह है कि मुझे उस तरह की नेस्टेड उपप्रक्रिया संरचना का उपयोग करना होगा

मैं यहाँ पर अटक गया हूं, शायद मैं वापस पिछले काम के कैसंड्रा-अजगर ड्राइवर्स पर स्विच करूँगा।

धन्यवाद!

निको

यह काम करेगा: (एक नई प्रक्रिया को स्पिन करने से पहले करीब सत्र)

def async_query_process (lock, I, process_num):

  अगर मैं & lt; Process_num: lock.acquire () क्लस्टर = क्लस्टर (['नेप्च्यून']) सत्र = क्लस्टर.कनेक्ट ('मर्क्यूअर') session.row_factory = tuple_factory session.cluster.shutdown () # यहां सत्र बंद करें session.shutdown () ताला। रिलीज़ () प्रोसेस = मल्टीप्रोसेसिंग। प्रोसेस (नाम = 'प्रोसेस' + स्ट्रॉ (आई + 1), लक्ष्य = async_query_process, आर्ग्स = (लॉक, आई + 1, 2)) process.start ()  

Comments

Popular posts from this blog

c# - Highlight all words containing a letter in a richtextbox -

Editing Python Class in Shell and SQLAlchemy -

java - JavaFX WebEngine Video Playback in Linux -