MelRanG
719
2021-03-08 22:35:30
2
150

플라스크로 데이터 변경을 실시간으로 알 수 있는 방법이 있나요?


a.py라는 파일이 크롤링을 작업하고 중복데이터 체크 후 중복데이터가 없다면 db에 삽입합니다.

b.py라는 파일은 플라스크를 활용해 /message로 주소를 열면

데이터가 변경됐다면 변경됐다고 print, 안됐다면 안됐다고

실시간으로 print를 하려고 합니다.


목적은 플라스크 서버는 항상 작동중이고 크롤러가 하루에 한~두번 데이터를 수집하고 새로운 데이터가 삽입됐다면 플라스크에서 그 변경점을 바로 찾아 메세지를 리턴하는 것이 목적입니다.


트리거나 db를 조회하는 방식이 아닌 다른 방식으로 해보고 싶어서 몇가지 시도를 해봤습니다.

a.py에 boolean타입 함수를 만들어 값을 반환하고

b.py에서 그 값이 true면 갱신, 아니라면 false를 조회하는 식으로 했는데


b.py에서 쓰레싱을 활용해 계속 변수가 바뀌는지 확인하는 작업을 진행했는데 a.py에서 변수가 바뀌어도 값이 변하지 않아서 질문드리게 됐습니다!


@app.route("/message")
def spring():
    c = check()
    threading.Timer(5, spring).start()
    
    if c:
        return "도서가 갱신 되었습니다."
    else:
        return "도서가 갱신 되지 않았습니다."


def check():
    return RidiSave.is_duplicate()


플라스크와 크롤러 두 가지만 활용해서 실시간으로 데이터가 변경되는 것을 알 수 있는 방법이 있을까요??


0
  • 답변 2

  • WRITE_IN_DART✎
    2021-03-09 10:36:36

    mqtt같은 메시지 패싱을 사용하시는게 나을 것 같은데...

  • MelRanG
    719
    2021-03-09 13:37:41

    한번 찾아보겠습니다!

  • 로그인을 하시면 답변을 등록할 수 있습니다.