사이트 방문자가 cron 태스크를 트리거하지 못하게하려면 어떻게합니까?


12

내 사이트의 로그는 누군가가 웹 사이트를 방문하면 크론이 트리거되었음을 보여줍니다. 첫 방문시로드 시간이 느려집니다.

cron은 관리»구성»시스템»Cron 에서 3 시간마다 실행되도록 구성됩니다 .

방문자가 예약하지 않고 트리거되지 않은 cron을 어떻게 실행할 수 있습니까?

답변:


9

cron대한 Drupal 핸드북 페이지 를 읽고 배경과 명령을 실행하십시오.

  • (Linux) 서버에 쉘 / SSH 액세스 권한이있는 경우 use run crontab -u www-data -e을 실행 하여 웹 사용자의 cron 테이블을 편집 할 수 있습니다 . 위 링크의 세부 정보를 사용하여 원하는 횟수만큼 적절한 크론 실행을 설정할 수 있어야합니다.
  • 셸 액세스 권한이없는 공유 호스팅 인 경우 웹 호스트의 제어판 (CPanel, Plesk 등)을 사용하여 로그인하고 '예약 된 작업'을 추가해야합니다. 이것은 cron 탭에 대한 웹 인터페이스를 제공하므로 동일한 설정이 필요합니다.
  • 이러한 서비스를 이용할 수없는 경우 호스팅 회사에 도움을 요청해야하지만 무료 및 유료 서비스도 제공되므로 cron.php원격으로 페이지를 호출 할 수 있습니다. 예를 들어 Cron 작업 설정을 참조 하십시오 .

일반적으로 cron을 더 많이 원한다면 Elysia Cron 모듈 처럼 보이십시오. 문서가 잘 갖추어져 있으며 언제 실행될 작업을 미세하게 제어 할 수 있습니다.

마지막으로, 방문자가이를 관리 할 때 관리»구성»시스템»Cron에 도착하면 사이트를 실행하는 사이트를 비활성화해야 합니다.


쉘 액세스 권한이 있습니다. 크론 작업을 설정하는 방법을 알고 있습니다. 그래서 알아낼 것입니다. 그러나 모든 정보를 요약 해 주셔서 감사합니다.
cateye

그러나 내가 이해하지 못하는 것은 왜 Drupal이 지금처럼 행동하는지입니다. 기본 구성이 3 시간마다 cron을 실행하도록 스케줄 된 경우 방문자를 기다리는 이유는 무엇입니까?
cateye

1
그것에 대해 생각. Drupal에게는 부트 스트랩없이 cron 작업을 실행할 수있는 방법이 없습니다. 부트 스트랩은 방문자가 사이트를 방문 할 때 발생합니다. 따라서 요약은 다음과 같습니다. 실제로 예약 된 cron 작업을 원할 경우 서버 측에서 설정해야합니다.
cateye

2
바로 그거죠. 누군가 또는 실행중인 서버가 없으면 서버에서 아무 일도 일어나지 않습니다. Drupal 7의 기본값은 사용자가 때때로 도착하면 핵심 작업이 실행되도록 cron을 실행하는 것입니다. Drupal 6은 적절한 Cron 작업이 없을 때 Poor Man 's Cron 모듈을 사용하여이 작업을 수행했습니다. Drupal의 거의 모든 것은 부트 스트랩이 먼저 필요합니다. 서버에서 적절한 크론 작업이 확실히 최선의 선택입니다.
Jim Kirkpatrick

1
아래답변 은 해결 방법을 설명합니다. 이건 아닙니다 :(
Tomáš Fejfar

13

Drupal 7은 Poormanscron에 있는 코드를 모듈에 통합했습니다.이 코드 의 목적은 cron 작업을 설정할 수없는 사이트에서 사용자가 사이트를 방문 할 때 및 X 시간마다 Drupal cron 작업을 정확하게 실행하는 것입니다. 본 페이지).

이러한 동작을 피하려면 "Run cron every"를 "Never"로 설정하면됩니다. 사용자가 사이트를 방문 할 때 발생하는 영향에 영향을 줄 수 있습니다. [1] Drupal 외부에서 Drupal cron 작업을 계속 실행할 수 있습니다. Drupal 7에서는 "관리> 보고서> 상태 보고서"에 표시된 값을 전달하여 Drupal 외부에서 cron.php를 호출해야합니다.

 

스크린 샷

 

 

 

 

 

[1] : 실제로 cron.phpdrupal_cron_run () 은 해당 설정 페이지에 사용 된 Drupal 변수를 확인 하지 않습니다 . 사용 된 드루팔 변수는 다음과 같습니다 :

  • Drupal cron 태스크가 권한이없는 사용자로부터 실행되지 않도록하는 데 사용되는 cron 키를 포함하는 "cron_key"
  • TRUE사이트가 유지 관리 모드 일 때 설정되는 "maintenance_mode"
  • cron 태스크가 마지막으로 실행 된 시간 소인이 포함 된 "cron_last"

유일한 어려움은 페이지를 볼 때마다 cron 작업이 시간 초과되고 관리자로 로그인하여 비활성화 할 수없는 경우입니다! 한숨 ... 알아낼 수 있지만 일단 실제로 거기에

네, 매 6 시간마다 cron 활성화 URL을 "확인"하는 Montastic 가동 시간 모니터를 설정하여이 문제를 신속하게 해결했습니다 ...
Anders
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.