자동 환불 기능을 만들고 싶어요? 예를 들어 결제 후 3일 이내에 콘텐츠에 대한 응답이 없으면 자동으로 환불 절차에 들어갑니다! 하지만 이 시간 제한 작업을 작성하는 방법은 무엇입니까? 매초마다 PHP 스크립트를 실행해야 합니까, 아니면 mysql에서 예약된 작업을 작성해야 합니까?
다양한 옵션이 있으며 각각 장단점이 있습니다. 어느 것이 더 적합한지 확인하세요. 관련 테이블에서는 주문 시간 필드와 만료 시간 필드를 설정해야 합니다. 첫 번째 유형: crontab 예약 작업, php 스크립트를 실행하여 테이블을 스캔하고 만료 시간에서 주문 시간을 뺀 날짜가 3일 이상인 경우 환불 상태로 변경됩니다.
두 번째 방법: mysql의 예약된 작업을 사용합니다. 다음은 사용자의 고유한 논리에 따라 작성할 수 있는 데모입니다.
으아악
세 번째 방법: Redis를 사용하여 저장하고, 저장 시 만료 시간을 3일로 설정합니다.
첫 번째 옵션 장점: 간단하다, 코드 로직이 크게 바뀌지 않고 그냥 작성한 후 사용하자 단점: 정해진 시간에 크론탭 작업을 실행해야 하기 때문에 시의성이 별로 좋지 않다 두 번째 옵션 장점 : 다이렉트 MySQL이 이루어지며, 다른 링크는 필요하지 않습니다 단점: crontab의 장점과 유사하며, mysql 예약 작업에 익숙하지 않은 경우에도 익숙해져야 합니다 세 번째 옵션 장점: 사용하기 쉽습니다. , 좋은 주문 적시성, 그리고 한 번 mysql에 갈 필요가 없습니다 io 단점: 논리 계층 코드에 Redis 논리를 추가해야 할 수 있으며 지속성 전략, HA 및 마스터-슬레이브가 잘 수행되어야 합니다. 그렇지 않으면 가동 중지 시간이 발생합니다. 비극적 일 것입니다.
다양한 옵션이 있으며 각각 장단점이 있습니다. 어느 것이 더 적합한지 확인하세요.
관련 테이블에서는 주문 시간 필드와 만료 시간 필드를 설정해야 합니다.
첫 번째 유형: crontab 예약 작업, php 스크립트를 실행하여 테이블을 스캔하고 만료 시간에서 주문 시간을 뺀 날짜가 3일 이상인 경우 환불 상태로 변경됩니다.
두 번째 방법: mysql의 예약된 작업을 사용합니다. 다음은 사용자의 고유한 논리에 따라 작성할 수 있는 데모입니다.
으아악세 번째 방법: Redis를 사용하여 저장하고, 저장 시 만료 시간을 3일로 설정합니다.
첫 번째 옵션
장점: 간단하다, 코드 로직이 크게 바뀌지 않고 그냥 작성한 후 사용하자
단점: 정해진 시간에 크론탭 작업을 실행해야 하기 때문에 시의성이 별로 좋지 않다
두 번째 옵션
장점 : 다이렉트 MySQL이 이루어지며, 다른 링크는 필요하지 않습니다
단점: crontab의 장점과 유사하며, mysql 예약 작업에 익숙하지 않은 경우에도 익숙해져야 합니다
세 번째 옵션
장점: 사용하기 쉽습니다. , 좋은 주문 적시성, 그리고 한 번 mysql에 갈 필요가 없습니다 io
단점: 논리 계층 코드에 Redis 논리를 추가해야 할 수 있으며 지속성 전략, HA 및 마스터-슬레이브가 잘 수행되어야 합니다. 그렇지 않으면 가동 중지 시간이 발생합니다. 비극적 일 것입니다.
Linux crontab 예약 작업을 사용하여 가끔씩 고정된 PHP 스크립트를 실행하세요~
예약된 작업을 작성하고 매초마다 PHP 스크립트를 실행하세요.
메시지 대기열을 지연하여 주문 후 메시지 대기열의 쓰기 작업을 등록하고 3일 후에 트리거한 다음 간단히 환불 작업 수행 여부를 판단할 수 있는 인터페이스를 작성합니다.
환불은 검토 대상이 아니나요? 대본도 직접 실행해서 다 파산시켜버렸어요!