사이트 방문자가 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.php 나 drupal_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.