Extra Form
PHP PHP 7.3
CMS XpressEngine

ncenterlite.png

 

위의 기능을 애드온으로 구현할 수 있을까요??

 

<?php
if(!defined("__XE__")) exit();
    if($called_position == 'before_module_init')
    {
if(date("His") == intval($addon_info->hour ? : 060000))
        {
            $args->old_date = date('Ymd', strtotime('-30 day');
            $output = executeQuery('addons.ncenterlite.deleteNotifyAll', $args);
        }
    }
?>

 

  • Lv24
    애드온은 여러번 동작하기도하고 그래서 효율상으로 삭제 쿼리를 계속 날릴경우가 많습니다.

    애드온보다 외부 PHP파일 만들어서 구현하시는것을 추천합니다.
  • Lv24 ? Lv6
    • blue
    • 질문기여자

    방문자가 적은 오전 6시에 한번 쿼리를 날리려고 하는데요. 아무래도 애드온으로는 무리가 있을까요?

  • ? Lv6 Lv24
    네 좀 있을듯하네요.
  • ? Lv6 Lv30
    애드온으로 하셔도 큰 무리는 없어 보입니다. 30일전 데이터양이 많아도 첫 쿼리에서 부담이 되겠지만 이후 반복 퀴리가 있어도 이미 지워졌기에 지울게 없을 겁니다.

    애드온이 아닌 관리자가 직접 삭제 버튼을 눌러도 동일하니다. 삭제 버튼 연속으로 몇번 눌러도 맨 처음 누를때 삭제 대상이 얼마나 많은가에 따라 부하량이 달리지죠.

    따라서 짧은 일정한 주기로 반복해서 삭제 작업이 되도록 해주면 삭제 대상이 누적되지 않아 삭제할 양이 줄어들어 부담이 줄어듭니다.

    관리자 페이지에서 관리자가 직접 지우지 않고 애드온에 의해 처리하시려면 관리자에게만 해당 작업을 하게 할건지 혹은 방문자 또는 회원에게 부담 시킬건지 생각해 보셔야 할 것입니다.

    왜냐면 그 작업에 걸린 방문자는 조금 느린 응답을 경험할테니 대상,act 등을 고려해 못느끼는 시점(ex:로그아웃) 에 동작하도록 만들어야 합니다.

    그래서 람보님이 그냥 php로 제작을 추천했을 것 입니다. 서버에서 정해진 시간에 백그라운드로 실행을....