찾다

 >  Q&A  >  본문

thinkphp5에서 redis를 사용하여 15분 안에 주문을 취소하는 방법은 무엇입니까?

1. 15분 이상 주문이 들어왔는지 확인하고 싶은데 15분을 초과하면 데이터베이스를 타임아웃 취소로 수정해야 하는데 어떻게 시작해야 할지 모르겠네요.

过去多啦不再A梦过去多啦不再A梦2796일 전1735

모든 응답(5)나는 대답할 것이다

  • 漂亮男人

    漂亮男人2017-06-06 09:54:43

    이 기능은 사용자 동작을 트리거하도록 만들 수 있습니다. 예를 들어 사용자가 주문을 확인하고 결제가 이루어지지 않았으며 15분을 초과했다고 판단되면 주문 상태가 시간 초과 취소로 변경됩니다. 조회되지 않은 주문 및 상태가 업데이트되지 않은 주문은 예약된 작업에 의해 이른 아침에 업데이트될 수 있습니다. 주문량이 많은 경우 모든 주문의 상태를 실시간으로 동기화하는 것은 권장되지 않으며 의미가 없습니다.

    회신하다
    0
  • 怪我咯

    怪我咯2017-06-06 09:54:43

    데이터베이스 폴링: 예약된 작업을 사용하여 데이터베이스를 폴링하여 관련 주문 처리를 쿼리합니다. 이 방법은 소규모 프로젝트에서 간단하고 실용적이며 유지 관리가 쉽습니다.

    Ring Queue: 참조: http://mp.weixin.qq.com/s/mvF...

    큐 서비스: 지연된 큐 처리 사용 참조: http://tech.youzan.com/queuin...

    회신하다
    0
  • 高洛峰

    高洛峰2017-06-06 09:54:43

    더 나은 해결책은 위에서 언급한 링 큐인 시간 휠을 사용하는 것입니다.
    Redis 키 공간 알림을 사용하여 만료 시간을 15분으로 설정하고 키 삭제 이벤트를 수신하고 해당 작업을 수행할 수도 있습니다.

    회신하다
    0
  • phpcn_u1582

    phpcn_u15822017-06-06 09:54:43

    타이머를 사용하면 좋지 않나요?

    회신하다
    0
  • 滿天的星座

    滿天的星座2017-06-06 09:54:43

    redis가 필요하지 않습니다

    MySQL로 할 수 있습니다

    계획:
    PHP 스크립트 작성, 데몬 프로세스 실행,
    while 루프, 라이브러리 확인, 주문이 15분 이상 소요되고 주문이 미결제 및 배송되지 않은 경우 취소 작업이 수행됩니다

    회신하다
    0
  • 취소회신하다