2009-10-05 4 views
0

특정 시간에 [사람의 간섭없이] 특정 사용자에게 이메일을 보내야하는 웹 페이지를 개발합니다 [데이터베이스 값에 따라].특정 시간 간격으로 PHP 파일 실행하기

예를 들어 Send_mail.php라는 파일이 있습니다. 스크립트에 의해 하루에 한 번 실행됩니다 [Cron이나 다른 방법으로는 안됩니다]. 이 부분을 안내하십시오. 사전에

감사합니다.

답변

2

당신은 'cron이 아니라'라고 말하고 있습니다. 왜? Cronjobs는 그런 경우를 위해 정확하게 예정된다! 그렇게 할 수있는 더 좋은 방법은 없습니다!

1

비정상적인 이유로 cron을 사용하지 마십시오. 웹에 액세스 할 수있는 경우 http://yourwebsite.com/Send_mail.php으로 스크립트를 실행할 수 있습니다. 이것은 하루 종일 GET 요청을 수행 할 예정인 소프트웨어를 사용하는 모든 컴퓨터에서 발생할 수 있습니다. 이는 클라이언트 기반 요청입니다.

0

cronjobs을 사용하면이 작업을 수행 할 수 있습니다.

cronjob을 사용할 수없고 하루에 적어도 한 번 사이트를 방문하는 경우 페이지에 코드를 입력하십시오. 페이지가로드 될 때마다 사용자에게 전자 메일을 보내야하는지 또는 오늘 전자 메일이 이미 전송되었는지를 확인합니다.

+0

가능하지만 신뢰할 수 없습니다. 페이지가 자주 방문되는지 확인해야합니다. – markus

+0

아니요, 사이트는 하루에 한 번 방문하지 않습니다. 그것은 사용자에게 달려 있습니다. – Sakthivel

+0

@Sakthivel : 네가 틀렸어. 사이트가 누군가에 의해 방문되면 충분할 것입니다. 나머지는 당신의 대본이 될 것입니다. – markus

3

내가 생각할 수있는 유일한 옵션은 어쨌든 cron을 호출하지 않으면 한 번 트리거 된 스크립트를 무기한으로 계속 실행하는 것입니다. 나는 지금까지 다른 사람들과 동의하지만, 이것은 PHP 스크립트가 의미하는 것이 아니며, 입니다. 무엇을 명시 적으로하기위한 것일까 요?

하지만 PHP로 처리하는 것은 꽤 까다 롭습니다. 스크립트를 시작한 사용자가 항상 로그인하지 않았다면 브라우저를 종료하지 않고 (브라우저를 닫으면 스크립트가 종료됩니다) 명령 줄에서 시작하지 않는 방식으로 스크립트를 시작해야합니다. 서버 측).

그런 식으로 스크립트를 실행하면 메모리 사용량 측면에서 시간이 지남에 따라 늘어나고 크롤링에 이르기까지 다른 활동이 느려지는 것을 말할 필요도 없지만 상상해보십시오.

기본적으로 PHP 스크립트는 무엇인가 알려주면 실행됩니다. 하루에 안정적으로 실행하려면 스크립트를 열어야합니다. 누군가 Marius의 방법을 사용할 수 있도록 한 번 이상 사이트의 일부 페이지를 방문 할 것이라는 확신이 없다면, 서버 측 프로그램을 실행시켜야합니다. 내게 cron).

염려가 cron이 아닌 모든 작업을 수행하는 경우에만 하루에 스크립트를 열 수 있습니다.

1

cron이 아닌 경우 휠을 하루에 한 번 돌리는 데 필요한 것이 있습니다.

신뢰할 수 있고 웹 서버의 열사병이 발생할 때까지 며칠, 몇 개월, 몇 년 동안 무인으로 실행할 수있는 것.

작성할 수 있습니다. PHP에서는 의심의 여지가 없습니다. 그건 당신의 웹 서버에서 데몬 프로세스가 될 것입니다.

시작할 때마다 시작되어야합니다. 마지막 작업이 언제 실행되었는지 확인하고 다른 작업을 실행할 시간이 맞는지 결정해야합니다. 매일 매일 (1 시간 또는 2 시간) 잠자기 (1 시간 또는 2 시간) 수면을 할 수 있는지 확인한 다음 작업을 실행하고 다시 잠자기 상태로 돌아갈 수 있습니다.

아파치 mod_php 또는 fastcgi를 통해 실행할 수 없습니다. 스크립트가 잠시 후에 죽습니다. 엄지 손가락으로 30 초를 말하십시오.

그것은 PHP를 명령 줄 실행에 nohupsystem() 호출을 통해, 그래, 시작시 대신, 웹 서버 프로그램을 통해 시작 할 수

, 뭔가 같은 : jobrunner는 경우 확인해야

<?php system('nohup php jobrunner.php'); ?> 

다른 사본이 이미 실행 중이며이 경우 자살합니다. 비밀번호를 입력하지 않고 웹 사용자가 시작하거나 재시작 할 수 없어야합니다.

처음부터 새로운 것으로 개발되어 새로운 버그와 보안 위험이 수반 될 수 있습니다.

네, 그렇게 할 수 있습니다.
그리고 일일 작업을 매우 맞춤식으로 처리해야하는 거대한 프로젝트가 아니라면 그렇게해야한다고 생각하지 않습니다.

일반적으로 cron은 시스템 관리자에게 잘 알려져 있으며,이 이미 실행 중이며 명령 줄이나 system() 액세스 권한이없는 값싼 호스팅 업체에서 사용할 수 있습니다 ().

관련 문제