Django를 프레임 워크로 사용하여 Amazon EC2에서 실행되는 Python으로 작성된 봇이 있습니다. 봇의 최종 목표는 동일한 Slack 팀의 여러 사용자와 한 번에 대화를 지속하는 것입니다. 내가 알기로 Amazon은 Slack 팀 간의로드 베어링을 처리하지만 단일 Slack 내에서로드를 관리하는 방법을 알아 내려고합니다.
현재 내 봇은 단일 사용자가 응답하기를 기다리는 바쁜 루프에 있습니다. 저는 이것에 대해 조사를 해왔습니다. Celery가 작업에 적합한 도구입니까? 각 대화를 별도의 스레드 / 작업으로 분할해야합니까? 아니면 디스패처가 새 메시지를 처리하도록해야합니까? Slack이 인터럽트를 보낼 수있는 방법이 있습니까, 아니면 while 루프에 갇혀 있습니까?
도움 / 안내에 감사드립니다! 나는 이것에 꽤 익숙합니다.
편집 : 각 사용자와 관련된 "대화"개체 목록을 구현하여이 문제를 해결했습니다. 이러한 개체는 각 대화의 상태를 저장하므로 사용자가 다시 메시지를 보낼 때 봇이 중단 된 부분을 선택할 수 있습니다.
가정 :
모든 Django 항목을 건너 뛰고 AWS Lambda를 사용하여 사용자 요청에 응답하십시오. 이것은 매우 단순한 "MyBot : do_something_for_me"스타일에만 작동하지만 우리에게는 꽤 잘 작동합니다. ec2, rds, 쉬운 배포 등이 없기 때문에 관리도 훨씬 더 쉽습니다. 각 Lambda 요청에 대해 합리적인 시간 제한을 설정했는지 확인하십시오. 내 경험상 3 초는 일반적으로 약간 더 큰 스크립트가 없다면 충분한 시간입니다.
정말로이 모든 상태를 유지해야한다면 django의 모든 설정을 거치는 것보다 Flask에서 어떤 종류의 빠른 작업을 작성하는 것이 좋습니다. 그런 다음 모든 웹 서비스에 대한 모든 배포, 자동 확장, 백업 rigmarole을 처리해야하지만 필요한 경우 필요합니다 =)
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다