2017-03-05 17 views
2

파이썬을 사용하여 몽고 데이터베이스에서 데이터를 검색하여 분석합니다. 그래서 meteor app 및 client python을 사용하여 실시간으로 데이터를 검색하고 있습니다. 내가 경우 콘솔 숙박이 열려 있도록하려면 인쇄 데이터 I이 스크립트를 실행할 때파이썬 유성을 사용하여 데이터의 실시간 변화를 확인하십시오.

from MeteorClient import MeteorClient 
def call_back_meth(): 
    print("subscribed") 
client = MeteorClient('ws://localhost:3000/websocket') 
client.connect() 
client.subscribe('tasks', [], call_back_meth) 
a=client.find('tasks') 
print(a) 

, 그것은 단지 나에게 'A'에서 현재 데이터를 표시하고 콘솔이 종료됩니다,

: 이것은 내 코드입니다 변화의. While True를 사용하여 스크립트를 실행하고 변경 사항을 볼 수있게했지만 좋은 해결책은 아닌 것 같습니다. 다른 최적화 된 솔루션이 있습니까?

+0

,하지만 유성에서 [관찰자 기능 (HTTP가 : // 워드 프로세서. meteor.com/api/collections.html#Mongo-Cursor-observe)를 호출하면 커서를 호출 할 수 있으며 콜렉션에서 데이터가 추가/업데이트/삭제 될 때마다 콜백이 실행됩니다. MeteorClient에서 동일한 기능을 찾을 수 있는지 확인하십시오. – jordanwillis

+0

예. 노력했는데 감사했습니다. –

답변

0

실시간 피드백을 받으려면 변경 사항을 구독하고 변경 사항을 모니터링해야합니다. 여기 tasks를보고의 예입니다

from MeteorClient import MeteorClient 

def call_back_added(collection, id, fields): 
    print('* ADDED {} {}'.format(collection, id)) 
    for key, value in fields.items(): 
     print(' - FIELD {} {}'.format(key, value)) 

    # query the data each time something has been added to 
    # a collection to see the data `grow` 
    all_lists = client.find('lists', selector={}) 
    print('Lists: {}'.format(all_lists)) 
    print('Num lists: {}'.format(len(all_lists))) 

client = MeteorClient('ws://localhost:3000/websocket') 
client.on('added', call_back_added) 
client.connect() 
client.subscribe('tasks') 

# (sort of) hacky way to keep the client alive 
# ctrl + c to kill the script 
while True: 
    try: 
     time.sleep(1) 
    except KeyboardInterrupt: 
     break 

client.unsubscribe('tasks') 

(Reference) (Docs) 내가 파이썬에서 MeteorClient을 사용한 적이

+0

감사합니다. 내 하루를 보냈습니다. :) –