m3cron-예약실행( 2022.03.20 )
아실 분은 아실거라 생각되어 기본 설명과 관련링크, 수정내역만 남깁니다.
링크1 : 원작자이신 말러83님 자료
링크2 : G5.3 용으로 수정/개선해주신 뿡쁑님 자료
* 웹호스팅 이용시 크론탭을 대신해 로봇과 방문자를 활용, 주기별 지정 스케줄(php파일)을 실행합니다.
* 실행만 해주는 플러그인이므로 실행 파일과 내용은 개별적으로 제작해야 합니다.
뿡쁑님 개선본으로 사용하다가 조금 더 손 봐서 공유합니다.
관리자 페이지에 들어가는거라 그누/아미나/나리야 등 별 차이점 없이 사용 가능합니다.
< * 개선/변경 사항 * >
아래 설명이 중구난방이라 설치관련 요약 설명은 아래 링크 참고 해주세요.
1. 실행주기 설정시 주기 타입에 따른 일자/요일/시간 등 연계된 항목 선택시 분별력 향상 ( 목록에서도 연계된 설정 항목만 표기)
2. 스케줄 파일별 로그 검색 로직이 있었는데 활성화 되어있지 않았던 것을 사용할 수 있도록 목록에 개별 로그 확인 버튼 추가
3. 메뉴 아이콘 추가 및 코드 간소화
4. 관리자에게 1포인트씩 지급하는 샘플 파일 첨부 (목록에서 지금실행 버튼 클릭 후 포인트 내역 확인)
5. 실행주기 타입 선택과 실행여부 체크 두 조건이 만족되어야 실행 되도록 수정
6. 작업 수정완료 버튼 클릭시 목록으로 이동하던 것을 수정 페이지에 머물도록 수정
7. 메뉴는 650 번대로 변경
8. 로그삭제 페이지를 없애고, 로그 페이지에서 바로 삭제할 수 있도록 병합(전체 덮어쓰기 후 m3cron_delete.php 파일은 삭제)
9. 로그기록 없을 경우 삭제연도 선택 출력내용이 나오지 않도록 수정
10. 전체 및 개별 로그검색 건수를 별도 표기하고, 파일명 표기시 .php 문자열 숨김
11. 실행주기 한 번(once) 타입 추가
ㄴ 목록 접속시 'once' 타입 전용 DB 컬럼('at')이 추가됩니다.
ㄴ 데이트픽커 폼 + 시간 설정으로 지정
ㄴ 지정 일시에 한 번 실행 후 실행 체크가 해제 되므로 재설정시 실행에 다시 체크하면 됩니다.ㄴ 오늘부터 1년 후까지 지정할 수 있도록 했는데, 당일 설정시 현재 시간대를 포함한 이전 시간 선택시 즉시 실행되므로 현재 시간 이후로 설정하세요.
ㄴ 수정 update 파일 분리
12. 스케줄이 많아질 경우 파일 관리 편의를 위해 m3cron 폴더 내 하위 폴더를 한 단계까지 더 생성해 사용할 수 있도록 함
ㄴ스케줄이 적다면 m3cron 폴더에 바로 넣어도 되고, 그룹으로 묶어서 관리하려면 m3cron 폴더 내 추가로 폴더를 생성해서 담아 쓰면 됩니다.
13. 분 단위 지정 옵션 추가 (목록 접속시 필드명 'i' 추가 됨)
14. 목록 순서 지정 옵션 추가
15. 수시로 작업 테스트시 편의를 위해 설정 관계 없이 무조건 지금 실행 기능 추가
16. 관리자가 생성한 가짜 회원 아이디를, 제어 가능한 가상의 로봇으로 활용할 수 있도록 함 (설명 일부는 extend/m3cron.vr.php 문서 내 포함)
- 원리는 임의로 생성한 회원 아이디를 로그인 시킨 뒤 스케줄 시간 체크 후 가장 빠른 시일 내 실행되어야 할 파일 하나만 골라서 해당 시간에 새로고침 시킵니다.
- 크론 관리자 접속 후 수정 모드에서 가짜 회원 아이디 등록(리스트 중 하나에만 등록하면 됨)
- 등록 된 계정을 안쓰는 다른 브라우저에 접속 시킴 - 크론 관리자 좌상단에 접속여부 표시(관리자 계정과 아이피가 동일하면 접속 상태는 '연결끊김' 으로 표시 됨)
- 모바일 브라우저 이용시 스크린이 OFF 상태면 스크립트가 중지되므로 공기계 등에 와이파이와 충전기 연결 후 항상 켜둬야 함 (화면 꺼짐방지 앱 등 활용, 화면밝기 조절 등 베터리 소모량 최소화 설정 후 사용 권장).
- 일반 데스크탑 PC를 항상 켜두고 사용하는 경우 PC 이용.
- 직접 서버를 구동하는 경우 안정적인 운용이 가능할 것으로 생각 됨.
- 주의사항
- 가상로봇으로 명명하지만 임의 계정을 사용하므로 로봇 실행에 체크하면 안됩니다. 예외로 가상로봇만 실행 가능 체크시에는 관계 없음.
- 스케줄 시간 외 기본환경설정의 현재접속자 표시 시간을 주기로 별도 새로고침 되도록 했으니 스케줄 실행시간 조정시 변경 된 스케줄 실행시 까지의 남은 시간이 최근 새로고침 된 시점에 현재접속자 표시 시간을 더한 시간보다 빠르면 가상로봇이 인식할 수 없습니다.
이 점 유의해서 기본환경설정의 현재접속자 표시 시간을 적절히 변경해 주거나 extend/m3cron.vr.php 21줄 또는 24줄에서 직접 조정하시면 됩니다.(단위는 msec)
** 관건은 가상의 로봇 계정이 접속 된 브라우저를 항상 구동 상태로 유지할 수 있어야 하는데, 앱스토어에서 화면 켜짐 유지 관련 앱이 있으니 설치해서 이용하시면 될거 같습니다 . **
<2022.03.14>
모바일 기기로 가상로봇 기능 이용시 화면꺼짐 방지 스크립트를 적용해봤는데 불안정해서 삭제했습니다. 화면꺼짐 방지용 앱을 이용하면 될거 같습니다.
js 폴더가 삭제되고, m3cron.vr.php 에서 관련 내용 삭제 됨. - 업데이트 후 FTP 접속 후 js폴더에서 NoSleep.min.js 파일만 삭제하면 됩니다.
<2022.03.17>
17. '매 분' 단위 실행주기 타입 추가 - 0분 선택시 매 시간과 마찬가지로 매 번 실행 됩니다.
18. 가상로봇만 실행 가능 옵션 추가 - 로봇이나 방문자 접속량이 많아 중복 실행시 문제가 되는 경우나 회원만 접근 가능한 페이지의 접근 또는 강제 이동 필요시 활용 가능
<2022.03.19>
* extend/m3cron.vr.php 누락 된 코드 및 남은시간 체크 오류 수정
* 가상로봇 계정의 로그아웃 방지용 새로고침 코드 위치를 스케줄이 없어도 실행될 수 있는 곳으로 변경함
* 리스트 페이지 테이블 컬럼 너비 스타일 추가 및 css 호출문 수정
ㄴ전체 덮어씌우기 후 adm/shop_admin/ 내 css 폴더 삭제바람.
https://sir.kr/g4_tiptech/19755
https://amina.co.kr/bbs/link.php?bo_table=skin_member&wr_id=14418&no=2