푸시앱에서 발생시킨 알림센터 알림(새글) 알림센터 해당회원 캐시 갱신
CMS/프레임워크 | Rhymix 1.9 |
---|---|
개발 언어 | PHP 7.2 |
푸시앱을 사용하는데요. XE 시절에는 새글 푸시 발생시 알림센터 알림 숫자 도 즉시 반영하여 동일한 표시를 해주었는데 라이믹스로 바꾸니 라이믹스는 푸시앱에서 넣어준 알림을 캐시가 갱신되지 않으니 모르고 있네요. 캐시 때문인거 같습니다.
실제 알림목록에는 있습니다.
푸시앱이 라이믹스와 호환이 잘 안되는 거 같은데 푸시앱에서 새글 푸시 직후 알림센터 알림 추가해주는 곳에서 해당 알림 받는 회원이 알림 상태를 새로 갱신하게 해줄 수 있는 방법이 어떻게 해야 하는지 고쳐보고 싶습니다.(XE에서는 문제 없습니다.)
푸시앱에 코드를 추가해줘야 할 것 같은데 푸시앱 문의 시 닶이 없을 것 같아 여기 먼저 올립니다.
댓글 12
XE용 알림센터는 파일을 사용해서 알림 갯수를 캐싱하지만, 라이믹스용 알림센터는 APC, Memcached 등 코어에서 선택한 캐시 방식을 따릅니다. 푸시앱 모듈에서는 아마 XE용 알림센터의 캐시파일 경로를 수동으로 삭제해 주는 방식으로 땜빵하고 있을 것입니다.
아마 캐시파일을 삭제하는 코드가 복붙되어 있을 겁니다.
그걸 아래와 같이 바꿔줍니다.
$oNcenterliteController = getController('ncenterlite'); // 위에서 이미 선언했다면 불필요
$oNcenterliteController->removeFlagFile($member_srl); // 특정 회원의 알림 캐시를 초기화
$outputdd = executeQuery('ncenterlite.insertNotify', $args);
if(!$outputdd->toBool())
{
return $outputdd;
}
$trigger_notify = ModuleHandler::triggerCall('ncenterlite._insertNotify', 'after', $args);
$flag_path = _XE_PATH_ . 'files/cache/ncenterlite/new_notify/' . getNumberingPath($args->member_srl) . $args->member_srl . '.php';
if(file_exists($flag_path))
{
//remove flag files
FileHandler::removeFile($flag_path);
}
이런 부분 비슷한게 두번 동작 하네요. 문서번호가 존재할때와 아닐때 두군데 같습니다.
네, 그거 맞습니다. $glag_path부터 중괄호 닫는 곳까지의 코드를 대체하시면 되겠네요.
푸시앱은 똑같은 코드를 조금씩만 바꿔서 여기저기 복붙해 놓은 것이 많으니
여러 군데를 꼼꼼하게 살펴보시기 바랍니다.
$oNcenterliteController->removeFlagFile($args->member_srl;
요렇게 한줄만 추가해 주는건 어떨까요?
라이믹스에서만 쓰신다면 불필요한 디스크 I/O가 발생합니다.
androidpushapp.controller.php
$oNcenterliteController->removeFlagFile($args->member_srl;
이 코드를 적용하신건 아니신거죠?
적용하신 코드와 위치 좀 알려주실 수 있으신가요? ^^;
function notify_Ncenterlite($obj, $sort_gcm, $member_srl, $type="none")
의 함수를 검색하시고
기진곰님께서 알려주신대로
잘못 작성된
//$flag_path = _XE_PATH_ . 'files/cache/ncenterlite/new_notify/' . getNumberingPath($args->member_srl) . $args->member_srl . '.php';
//if(file_exists($flag_path))
//{
//remove flag files
//FileHandler::removeFile($flag_path);
//}
위 코드를 모두 주석처리하고
제대로된 코드
$oNcenterliteController->removeFlagFile($args->member_srl); 로 대체하시면 됩니다.
2군데 등장할 것입니다.
감사합니다. 덕분에 수정 적용했습니다.
--------------------------------------------
[ 같은 문제있으신 분 참고 하세요. ]
androidpushapp.controller.php
8553 과 8617라인