다음 golangtutorial 칼럼에서는 Golang과 Lua를 사용하여 임무 로봇을 구현하는 방법을 소개하겠습니다. 도움이 필요한 친구들에게 도움이 되길 바랍니다!
저희 프로젝트 팀의 업무 중 하나는 이메일을 받은 후(대부분 비용 절감을 위해 이메일을 사용함), 저희 시스템에서 관련 정보를 확인한 후 이메일에 회신하는 것입니다. 작업량이 크지는 않지만 시간이 작은 조각으로 단축됩니다. 시간을 절약하기 위해 근무중인 이메일 로봇을 만들었습니다. 저를 대신해 이메일에 자동으로 답장해 달라고 부탁했는데, 이 기능은 많은 분들이 사용하실 수 있을 것 같아 공유하게 되었습니다. 먼저 효과를 공유해보겠습니다.
서버에서는 매우 간단합니다. Dutyrobot은 Golang으로 컴파일된 프레임워크입니다. lua 폴더에는 lua로 작성된 비즈니스 로직이 포함되어 있습니다. Data.json은 다시 시작한 후 쿠키 정보와 같은 데이터가 손실되는 것을 방지하기 위해 일부 관련 데이터를 저장합니다.
가장 기본적인 알파인으로 시작하고 관련 폴더를 컨테이너에 매핑한 다음 컨테이너에서 소프트웨어를 시작합니다. 이는 주로 이미지가 자체 환경 변수를 가질 수 있도록 수행됩니다.
그런 다음 비즈니스 로직은 정기적으로 이메일을 수신한 다음 비즈니스 로직을 결정하고 해당 lua 스크립트를 실행한 다음 이메일에 응답합니다.
관련 결과를 우리 내부실에 푸시하고 있습니다.
사실 저는 C# 프로그래머입니다. 그러기 위해 먼저 C#을 사용하여 구현했습니다. 하지만 C#은 Lua와 호환되지 않으며 이보다 더 우아한 클래스 라이브러리를 찾지 못했습니다. Linux 시스템을 사용하고 싶다면 .net core + C를 사용하여 Lua를 호출해 보았지만 이 문제에 대해서는 여전히 매우 순진합니다. 다양한 Python 패키지를 설치하면서 혼란스러웠습니다. 그래서 결국 Golang을 선택하여 기본 함수를 작성하고 이를 Lua에 게시한 다음 Lua가 전체 프로젝트를 구현하기 위한 다양한 비즈니스 로직을 작성하도록 했습니다. 프레임워크 부분은 한번 작성하면 변경될 확률이 상대적으로 낮고, Linux를 Window로 크로스컴파일하면 환경을 설치하지 않고도 바로 배포하고 실행할 수 있다는 점이 정말 멋지네요. 루아 해석 언어는 다른 점을 제외하면 꽤 좋습니다.
기본 프레임워크가 보편적이므로 직접 출시하여 사용할 수 있습니다. 귀하의 비즈니스 콘텐츠에만 관심을 가져보세요.
기본 프레임워크: https://gitee.com/anxin1225/DutyRobotGo
이 프레임워크에서는 주로 이메일 보내기 및 받기, 네트워크 요청 시작 및 네트워크 모니터링 시작을 포함하여 lua에 대한 많은 기능을 제공합니다(이 기능을 사용할 수도 있습니다) 하단에 작은 API 스테이션을 만들고(믿어주세요. 이전에 이 작업을 수행한 적이 있습니다), 임시로 데이터를 저장하고, 환경 변수를 얻고, 파일 콘텐츠를 얻은 다음 Lua 컨테이너를 시작합니다(예, Lua에는 Lua 컨테이너를 시작할 수 있는 기능이 있습니다) 다시) 현재 시스템 정보, cron 예약 작업을 가져옵니다. 물론, 부족하다고 생각되면 두 번째로 확장할 수도 있습니다. 사실 매우 쉽습니다. 이미 많이 썼지만 비교해보면 매우 쉽습니다. 그러나 일반적으로 확장할 필요는 없습니다. 여기서는 프레임워크 부분에 대해 자세히 설명하지 않습니다. 결국 비즈니스를 어떻게 수행하는가가 중요합니다.
그럼 Lua 부분이 어떻게 구현되는지 이야기해보겠습니다. Golang의 코드는 실행을 위해 main.lua를 직접 찾아주기 때문에 이 파일부터 시작하겠습니다.
많은 서비스를 등록했는데 어떤 서비스가 있는지는 아직 프레임워크에 어떻게 작성되어 있는지 살펴봐야 합니다. Cron은 제가 작성한 작은 함수 중 하나입니다. 실제로는 태스크 태스크인데, 태스크 폴더를 보면 양쪽에 2개의 파일이 있는 것을 알 수 있습니다. 그 중 task.go 의 언어 기능이 있습니다. Golang.task_4lua.go는 Lua가 호출하는 인터페이스의 등록된 위치를 노출합니다.
task_4lua.go 파일을 살펴보면 일반적으로 등록을 위한 RegisterFunc_4lua라는 함수가 있습니다.
이것은 매우 친숙해 보입니다. Cron은 Lua에서 사용하는 클래스의 이름입니다. 아래 지도는 나중에 일반 함수에서 호출해야 할 해당 이름입니다. Lua 측 호출에서 수행해야 할 작업을 작성합니다. 못찾으시면 액자에 오셔서 둘러보시면 놀라실 수도 있어요.
내 사업 내부. 1분마다 수신하고 5분마다 쿠키를 저장하면 됩니다. 실제 비즈니스 로직은 실제로 각 Lua 파일에 작성됩니다. 메시지를 수신하고 처리하는 방법을 살펴보겠습니다.
Lua의 간단한 비즈니스 로직은 다음과 같습니다. 이메일을 받고 해당 처리 Lua를 호출하면 처리가 완료됩니다.
위 내용은 Golang과 lua를 사용하여 듀티 로봇을 구현하는 방법을 가르칩니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!