로그인

검색

Extra Form
추천지수 5

모듈에서 특정한 작업을 하는 함수를 정해진 날짜와 시간에 맞춰서 반복적으로 실행되게 할 경우 자체 서버의 crontab에 등록하여 백그라운드로 그리고 자동으로 실행이 되게 하여 관리자가 수고를 하지 않아도 되도록 할 수 있습니다.

 

그런데 제가 이전에 메달기능이 포함된 경험치 모듈에서 제공하는 활동내역을 집계하여 메달을 결정하는 함수를 서버의 crontab에 등록하여 매월 1회 작동이 되도록 했습니다.

 

그런데 문제가 발생했습니다. 메달이 결정된 회원에게 메달지급까지 잘 되지만 이 사실을 알림센터로 해당회원게 알림을 발생하도록 하는 함수도 잘 동작을 하지만 알림센터에서 신규알림을 생성하면서 마지막에 해당회원의 알림센터 캐시를 초기화 하는 부분에서 문제가 발생했습니다.

 

이때 모듈 개발자분께 캐시부분 문제가 생긴다고 알렸지만 별다른 이유나 해법을 듣지 못해 결국 예약된 작업의 함수가 PHP-CLI 로 접근하는 방식이 아닌 웹상에서 접근하듯이 해당파일의  url로 접근하여 실행하도록 하여 알림센터 캐시 초기화가 정상적으로 잘 되는 것을 확인하고 이 방식으로 매월 1일 실행하는 것으로 마무리 했습니다.

 

알림센터 알림이 발생되었는데 해당 회원의 알림센터 캐시를 초기화 해 주지 못하면 새로 생성된 알림이 있는지 알 수 없어서 신규 알림이 발생했다고 알림을 띄워주지 못합니다. 알림내역에 가면 새로 도착해 있고 읽지않음 상태의 알림이 분명히 있는데 말이죠. 이때 정상적인 알림이 추가로 발생하면 이때 캐시가 초기화가 되면서 숨겨져 있던 알림이 이제 노출이 되게 되는 것입니다.

 

이번에 로또모듈을 개발하면서 당첨여부를 매주 토요일 저녁에 자동으로 확인하고 포인트 지급, 알림센터로 당첨사실 알림을 하는 함수를 만들어 원격으로 파일을 접속하면 해당 파일에서 함수를 실행하여 자동으로 작업이 이루어지도록 구현했습니다. 동일하게 서버의 crontab에 php name.php 와 같이 PHP-CLI 방식으로 해당 파일을 실행을 하게되면 역시나 당첨된 사실의 알림센터 알림이 캐시가 초기화되지 못하는 문제로 새 알림으로 뜨지 않는 상황을 확인하게 되었고 라이믹스 버그인가? 하는 생각으로 이슈로 등록을 했습니다.

 

https://github.com/rhymix/rhymix/issues/1943#issuecomment-1120232073

 

해당 이슈의 답변으로 안되는 이유를 확인했습니다.

 

PHP-FPM의 캐시와 PHP-CLI의 캐시가 서로 분리된 apc 등의 캐시 방식을 사용할 경우 발생할 수 있는 현상입니다. 이러한 캐시 방식을 사용하는 사이트에서 캐시 갱신이 필요한 스크립트는 모두 http로 실행되어야 합니다.

저희 서버가 바로 위 답변에 나오는 환경과 정확하게 일치하는 환경이었고 이 경우는 두가지 환경에서 서로 분리된 캐시 방식을 사용하여 캐시를 삭제하는 함수가 실행되어도 제대로 되지 않는 것이었던 것입니다.

 

혹시 특정 모듈에서 crontab에 특정 경로의 파일을 실행하도록 등록하여 정해진 시간에 알림센터 알림까지 신규로 발생하게 하는 작업에서 저 처럼 알림센터 신규 알림이 즉시 알수 없고 다른 알림이 뜰때 같이 뜨는 경우가 있다면 해당 파일을 접근하는 방식을 http 방식으로 바꾸어야 합니다.

 

대신 웹상에서 해당 경로의 파일을 누구나 접속을하게 될 수도 있고 봇이 크롤링하다가 실행이 될 수도 있고 하니 특정 ip만 허용하는 코드를 상단에서 처리해 주면 더 좋은 처리 방식이 될 것입니다. 물론 서버에 등록된 시간외 여러번 실행이 되더라도 문제가 없도록 함수 내에서 코드를 잘 짜는 것도 중요하겠지만요....

Who's 꿀팁관리소장

profile
라이믹스로 커뮤니티 사이트를 운영하는 비개발자 운영자 입니다.
파트너쉽 맺으실 사이트 운영자분 환영합니다.
2 추천

라이믹스 스토리(48)

라이믹스를 주제로 한 이야기가 게시됩니다.

  1. read more
  2. 라이믹스 2.1.0 업데이트 2

    Date2023.06.22 Views702 Votes4
    Read More
  3. Read More
  4. 라이믹스 2.0.24 업데이트

    Date2022.12.21 Views630 Votes2
    Read More
  5. 라이믹스 2.0.23 업데이트 1

    Date2022.10.31 Views509 Votes2
    Read More
  6. 라이믹스 2.0.22 업데이트 (보안패치) 1

    Date2022.08.16 Views507 Votes3
    Read More
  7. Read More
  8. Read More
  9. Read More
  10. Read More
  11. 라이믹스 2.0.20 업데이트

    Date2022.03.22 Views470 Votes2
    Read More
  12. Read More
  13. Read More
  14. Read More
  15. Read More
  16. Read More
  17. Read More
  18. Read More
  19. Read More
  20. Read More
  21. 라이믹스 2.0.14 업데이트 배포

    Date2021.08.05 Views185 Votes2
    Read More
Prev 1 2 3 Next
/ 3