머리말
저와 친구들은 thinkphp5.1을 사용하여 작은 소규모 교실 시스템을 작성했습니다. 이제 일일 수업 알림 및 데이터 초기화 기능을 구현하려고 합니다. 그런데 실행할 때마다 관리자 인터페이스를 수동으로 클릭해야 하는데, 매일 예정된 시간에 자동으로 실행되도록 하려면 어떻게 해야 할까요?
이전 방법
예정된 작업이나 계획된 작업에 대해 Google에서 tp5.1을 검색하면 많은 블로그가 있을 것이지만 대부분은 Linux 시스템을 설치한 지 얼마 되지 않아 Linux에 익숙하지 않습니다. . 먼저 Windows 시스템을 사용하여 구현했습니다.
Idea
Windows 환경과 Linux 환경에서의 구현 아이디어는 동일합니다.
1. 이제 구현 방법을 트리거에 작성하고 클릭하여 구현할 수 있습니다.
2. 웹페이지를 자동으로 여는 스크립트를 작성하세요.
3. Windows와 함께 제공되는 예약 작업을 사용하여 정기적으로 이 스크립트를 자동으로 실행하세요.
구현
1. 이제 로그인 컨트롤러 아래에 테스트 트리거를 작성합니다
public function test() // 自动执行测试 { echo "这是一个定时任务的测试"; }
트리거 효과는 다음과 같습니다
2. 이 웹 페이지를 자동으로 열려면 .bat 형식으로 스크립트를 작성하세요.
다른 .txt 파일을 생성하고 실행 성공 정보를 작성하세요.
코드는 다음과 같습니다.
@echo off start iexplore.exe http://127.0.0.1/index/login/test Ping -n 5 127.1>nul Taskkill /f /im iexplore.exe echo success >> test.txt
start iexplore.exe http://127.0.0.1/index/login/test
表示打开浏览器的网址具体网址写在最后,Ping -n 5 127.1>nul
表示等待5秒,Taskkill /f /im iexplore.exe
表示关闭浏览器,echo success >> test.txt
는 성공이 메모장에 반환된다는 의미입니다. 댓글을 작성하면 코드에 오류가 발생하므로 여기에 코드 댓글을 작성하겠습니다.
테스트 .bat 파일을 클릭하세요
메모장 효과는 아래와 같습니다
메모장에 적힌 코드를 딩톡 알림으로 변경할 수도 있습니다
코드는 다음과 같습니다
curl -X POST -H "Content-type: application/json" ^ --data "{\"text\": {\"content\": \"每日初始完成\"}, \"msgtype\": \"text\"}" ^ https://oapi.dingtalk.com/robot/send?access_token=23dc64f0dee37b5ee3b1ac472b2c84d837afa15b2a884b87b32f898998408a36
딩톡 로봇부터 기능은 이제 일시적으로 폐쇄되었습니다. 이 기능은 더 이상 시연되지 않습니다.
3. Windows에 내장된 예약 작업을 사용하여 예약된 자체 시작 스크립트 구현
제어판을 클릭하고 관리 도구->작업 스케줄러->기본 작업 만들기를 클릭하세요
이름: 일일 이니셜
트리거: 매일
시작: //원하는 시간 선택
작업: 프로그램 시작->이 스크립트 선택
완료
설정된 시간에 자동으로 시작됩니다.
결론
리눅스 시스템의 구체적인 동작 방식은 다르지만, 아이디어는 동일합니다. 아래에서 본 블로그 링크를 제공하겠습니다. 리눅스 시스템을 이해한 후 이를 구현해 보겠습니다. .