Final Project : Consumer code 확장
목차
- Consumer code 확장
Consumer code 확장
이전에 Producer-Consumer에 사용되는 Consumer 코드를 insert
와 update
에 맞춰 데이터를 넣어주는 방식을 제안했습니다. 이때, 당시 글에도 남겨놨던 furture question으로 update condition을 넣는 방식을 적었습니다. 이번에 해당 방식을 도입해서 더 확장성 높은 Consumer로 코드를 버전업했습니다.
1
2
3
4
5
if "update" in msg:
update_data = msg["update"]
rid = update_data["rid"]
uid = update_data["uid"]
conn_repo.update_one({"rid": rid}, {"$push": {"star_user_list": uid}})
기존의 consumer의 update 부분은 하나의 기능에 대해서만 동작하는 한계가 있었습니다. 이를 해결하고자 update_one
의 argument를 분석해서 확장성을 높였습니다.
1
2
3
4
5
6
if update:
print(update)
update_data = msg["update"]
condition = update_data["condition"]
query = update_data["query"]
conn_repo.update_one(condition, query)
실제 update_one
은 인자로 update 조건과 update query를 받습니다. 즉, Producer에서 condition과 query를 넘겨준다면 정말로 producer만 갈아끼우면 되는 producer-consumer 파이프라인이 만들어집니다.
이렇게 해서 consumer 코드의 개발이 어느정도 진행이 된 것으로 보입니다. 추가적인 기능 개선이 있을 수 있지만 현재의 상태로 충분히 데이터 수집 및 적제를 비동기로 처리할 수 있는 쓰임새만큼 발전되었습니다.
Comments powered by Disqus.