cron job을 실행시켜야되는데..
본문
https://cron-job.org/en 이 사이트에서 cron job을 실행시키고 있는데
cron이 제대로 동작하지 않는것 같아서
혹시 ftp에 php 파일이나 어떤 다른 방법으로 cron.php를 1분간격으로 계속 구동시킬 수 있는 방법이 있을까요??
cron.php 를 1분 간격으로 실행시킬 방법을 알려주시면 감사드리겠습니다.
답변 3
FTP상에서 php 파일만으로 1분마다 실행하기는 불가능합니다.
어디에선가 1분마다 해당 도메인의 php 파일을 실행해주어야 됩니다.
자동으로 php 파일을 실행할수 있도록
서버내부의 crontab 을 활용하셔야합니다.
웹 크론이나 자체서버의 크론탭 기능이 아닐 경우, 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);
}
}
?>
답변을 작성하시기 전에 로그인 해주세요.