안녕하세요 동료 프로그래머! :)"PHP 스크립트"/ "mysql 업데이트"동적 스케줄
사용자가 트리거 한 일부 이벤트 이후에 실행되도록 PHP 스크립트를 설정하고 싶습니다. 사용자가 자동으로 48 시간 후에 닫아야하는 포럼 스레드를 생성한다고 가정 해 보겠습니다. 이것은 MySQL 행에 대한 업데이트와 같습니다 : UPDATE threads SET closed = '1'WHERE threads.id = 'x'. 따라서이 문제는 반드시 php로만 해결해야하는 것은 아닙니다.
이런 종류의 질문은 수시로 팝업되지만, 발견 된 모든 것은 'x'시간마다 실행되도록 cron 작업을 설정하는 것이 었습니다. 시간이 스레드를 닫을 지 확인합니다. 문제는 주어진 시간에 한 번 스크립트를 실행하도록 예약하는 경우보다이 검사를 실행하면 시스템 부하가 더 커질 수 있다는 것입니다. 수백 또는 수천 개의 스레드가있을 수 있다는 것을 잊지 말아야합니다. 각 스레드는 닫을 시간이 있습니다. 우리는 예를 들어 MySQL에서 일종의 대기열을 생성하여 모든 단일 스레드를 검사하지 않아도되므로 스크립트는 "time_to_close < NOW()"가있는 DB 항목을 선택하고이를 닫습니다. 또 다른 단점은 스레드가 48 시간 후에 정확히 종료되기를 바랍니다. 이 경우 스크립트는 매 초마다 실행되어야하며 완전히 실행될 시간은 거의 걸리지 않아야합니다.
cron 작업 대신 다음 방법이 유용 할 수도 있습니다. 스레드를 닫아야하는 경우 액세스 할 때마다 확인하십시오. 특히 스레드에 자주 액세스하는 경우로드가 높아집니다.
그래서 특정 이벤트의 시간에 따라 (PHP) 스크립트 실행을 예약하는 효율적인 방법이 있습니까? 이 질문을 쓰면서 MySQL 이벤트 스케줄러를 발견했습니다. 프로 시저와 함께, 추가 플로우 제어 (48 시간 이후에 활동이 없었던 경우에만 닫는 스레드)를 제공 할 수 있습니다. 제 생각을 구현할 수 있다고 생각합니다. 나는이 MySQL 기능에 익숙하지 않기 때문에이 주제에 대한 도움을 주시면 감사하겠습니다.
최선을 다해, 시스템 __ 실수.
왜 스레드를 명시 적으로 닫아야합니까? 48 시간 전에 시작된 경우 코드에서 적절하게 처리 할 수 있습니다 (예 : 'Add Comment'링크 포함 안함). – andrewsi
스레드가 닫힐 때마다 표시/열림/등을 계산해야하는 것보다 플래그를 한 번 설정하는 것이 더 좋을 것이라고 생각했습니다. –