cronタスクがサイト訪問者によってトリガーされるのを停止するにはどうすればよいですか?


12

私のサイトのログは、誰かがウェブサイトにアクセスするとcronがトリガーされることを示しています。これにより、最初の訪問の読み込み時間が遅くなります。

cronは、3時間ごとに実行するように設定されています:管理»設定»システム»Cron

訪問者によってトリガーされずにスケジュールされたcronを実行するにはどうすればよいですか?

回答:


9

cronに関するDrupalハンドブックのページを読んで、背景とコマンドを実行してください。

  • (Linux)サーバーへのシェル/ SSHアクセスがある場合は、runを使用crontab -u www-data -eしてWebユーザーのcronテーブルを編集できます。上記のリンクの詳細を使用して、必要な頻度で適切なcron実行をセットアップできるはずです。
  • シェルアクセスなしで共有ホスティングを使用している場合は、Webホストのコントロールパネル(CPanel、Pleskなど)を使用してログインし、「スケジュールされたタスク」を追加する必要があります。これにより、cronタブへのWebインターフェイスが提供されるため、同じ設定が必要になります。
  • これらが利用できない場合は、ホスティング会社に支援を依頼する必要がありますが、使用できる無料サービスと有料サービスもあり、cron.phpリモートでページを呼び出すことができます。たとえば、cronジョブの設定を参照してください。

一般的にcronをさらに使いたい場合は、Elysia Cronモジュールのように見てください。優れたドキュメントがあり、どのタスクをいつ実行するかを細かく制御できます。

最後に、管理者»設定»システム»Cronに訪問者が到着したときに、それを実行するサイトを無効にすることを忘れないでください。


シェルにアクセスできます。cronジョブを設定する方法を知っています。だから私はそれを理解します。しかし、すべての情報を要約してくれてありがとう。
CATEYE

しかし、私が理解していないのは、Drupalが現在のように動作する理由です。基本構成が3時間ごとにcronを実行するようにスケジュールされている場合、訪問者を待つのはなぜですか?
キャットアイ

1
それについて考えます。Drupalには、ブートストラップなしでcronジョブを実行する方法はありません。そして、訪問者がサイトにアクセスするとブートストラップが発生します。したがって、要約は次のとおりです。本当にスケジュールされたcronジョブが必要な場合は、サーバー側でセットアップする必要があります。
キャットアイ

2
丁度。誰かまたは何かが実行されていないサーバーでは何も起こりません。Drupal 7のデフォルトでは、重要なタスクを確実に実行するために、ユーザーが時々到着するときにcronを実行します。Drupal 6は、適切なcronジョブがない場合にこれを行うためにPoor Man's Cronモジュールに依存していました... サーバー上の適切なcronジョブは確かに最適なオプションです。
ジムカークパトリック

1
以下の回答に修正方法が記載されています。これではない:(
トマーシュフェイファー14

13

Drupal 7は、Poormanscronにあったコードをモジュールに組み込みましたに目的は、cronタスクを設定できないサイトで、ユーザーがサイトにアクセスしたとき、およびX時間ごと(あなたが見たページ)。

その動作を回避したい場合は、「cronを毎回実行」を「なし」に設定するだけです。見た目とは逆に、ユーザーがサイトにアクセスしたときに何が起こるかに影響します。[1] Drupal 7では、「管理>レポート>ステータスレポート」に示されている値を渡して、Drupal 7でcron.phpをDrupalの外部から呼び出す必要があることを思い出して、Drupalのcronタスクを実行できます。

 

スクリーンショット

 

 

 

 

 

[1]:実際、cron.phpdrupal_cron_run()も、その設定ページで使用されるDrupal変数をチェックしません。使用されるDrupal変数は次のとおりです。

  • Drupal cronタスクを許可しないユーザーから実行されるcronキーを含む「cron_key」
  • TRUEサイトがメンテナンスモードのときに設定される「maintenance_mode」
  • cronタスクが最後に実行されたときのタイムスタンプを含む「cron_last」

唯一の問題は、ページを表示するたびにcronジョブがタイムアウトし、管理者としてログインして無効にできないことです!ため息 ...私はそれを理解しますが、実際にそこに着いたら、それを無効にすることができることを知って良い

ええ、私は「チェック」cronの起動URL 6時間ごとに...というMontasticの稼働時間モニタを設定することで、すぐに解決
アンダース
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.