cron job을 실행시켜야되는데..

cron job을 실행시켜야되는데..

QA

cron job을 실행시켜야되는데..

답변 3

본문

https://cron-job.org/en 이 사이트에서 cron job을 실행시키고 있는데

cron이 제대로 동작하지 않는것 같아서

 

혹시 ftp에 php 파일이나 어떤 다른 방법으로 cron.php를 1분간격으로 계속 구동시킬 수 있는 방법이 있을까요??

 

cron.php 를 1분 간격으로 실행시킬 방법을 알려주시면 감사드리겠습니다.

이 질문에 댓글 쓰기 :

답변 3

FTP상에서 php 파일만으로 1분마다 실행하기는 불가능합니다.

어디에선가 1분마다 해당 도메인의 php 파일을 실행해주어야 됩니다.

자동으로 php 파일을 실행할수 있도록

서버내부의 crontab 을 활용하셔야합니다.

혹시 cronjob을 이용하는데 실행되고 있다고는 나오지만 실제로 작동은 안하는거 같습니다.
~~/admin/cron.php 를 직접 인터넷창에 쳐서 들어가야지만 동작하는데 이 부분은 cronjob이 잘못된걸까요? 아니면 1분마다 실행해놓았는데 처리할게 많아서 동작하지 않는것일까요..?
1분 설정을 5분 60분으로 바꿔놓기도 해보았지만 안됩니다..

웹 크론이나 자체서버의 크론탭 기능이 아닐 경우, FTP에 업로드 된 파일 스스로 구동할 방법은 없습니다. 대안으로 타 서버에서 Wget 형식으로 불러오는 방법이 있긴 하지만, 서버 트래픽 등 고려해야 할 변수가 많습니다.

PHP 코드만으로 cronjob 과 같은 효과 내기겠죠?

 

아래 코드를 분석해 보세요.

 

<?php
session_start();

if(!isRequestActive())
{
    startTimer();
}

function isRequestActive()
{
    $file = 'time.txt';
    $now = new DateTime('now');
    if(!is_file($file)){

        file_put_contents($file, $now->format('Y-m-d H:i:s'));
        return false;
    }

    $contents = file_get_contents($file);
    $date = DateTime::createFromFormat('Y-m-d H:i:s',$contents);
    $difference = $now->getTimestamp() - $date->getTimestamp();

    if($difference > 60)
    {
        return false;
    }

    return true;
}

function startTimer()
{
    ini_set('max_execution_time', 99999999);
    session_destroy();
    ignore_user_abort(true);
    session_write_close();
    while(true)
    {
        $now = new DateTime('now');
        file_put_contents("time.txt", $now->format('Y-m-d H:i:s'));
        if($now->format('D H:i') == 'Tue 01:01')// Set the time you want to execute a task
        {
            // Code that you want to execute on said time
        }
        ob_start();
        echo "<script>document.location.href = document.location.href</script>";
        ob_end_flush();
        ob_flush();
        flush();
        sleep(60);
    }
}

?>

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
filter #cron ×
전체 11
© SIRSOFT
현재 페이지 제일 처음으로