영구적으로 연결을 유지하는 Python 스크립트를 실행하고 스크립트 외부에서 변경 한 내용에 응답합니다. 그래서 예를 들면pymysql은 새 연결을 인스턴스화 한 후 외부에서 변경된 내용 만 감지합니다.
는 :
- 데이터 스크립트 : 양식 게시물을 적용하고 데이터베이스에
- 작업자 스크립트를 양식 데이터를 커밋 : 새로운 형태의 게시물에 대한 데이터베이스를 모니터하고 그에 따라
조치를 취 작업자 스크립트의 관련 코드는 다음과 같습니다.
import pymysql
conn = pymysql.connect(host='127.0.0.1', port=3306, user='dbuser', passwd='dbpass', db='my_db')
def processForms(Formdat):
c = conn.cursor(pymysql.cursors.DictCursor)
myform.sendEmail(c)
conn.commit()
c.close()
def doForms():
while True:
... get data and store in 'myforms' ...
futures = [executor.submit(processForms, myform) for myform in myforms]
time.sleep(30)
doForms()
아니요 w 왜 이것이 새로운 폼을 선택하지 않는지 이해할 수 없습니다 ... doForms()의 각 반복에서 새로운 연결을 생성하면 새로운 폼이 선택되지만 연결을 생성하고 파괴하고 싶지는 않습니다 항상.
예를 들어,이 수정 작업 : 나를 열려있는 연결을 사용하고 최신 데이터를 폴링 한 수있는 방법은
conn = None
def doForms():
while True:
global conn
conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='', db='mw_py')
... get data and store in 'myforms' ...
futures = [executor.submit(processForms, myform) for myform in myforms]
conn.close()
time.sleep(30)
있습니까?
공식 MySQL 파이썬 인터페이스 인 mysql.connector 대신 pymysql을 사용할 특별한 이유가 있습니까? – peroksid
@peroksid 파이썬 3에서 작동하는 mysql.connector를 얻을 수 없었다. –
mysql-connector-python == 1.0.12로 작업 중입니다. – peroksid