web-dev-qa-db-ja.com

settings.phpで「cron_safe_threshold」が0に設定されている場合、admin / config / system / cronのドロップダウン値は「Never」にする必要がありますか?それとも無関係ですか?

Drupal 8.1.6をインストールしました。Ultimate_Cronはこのサイトで一貫してまたは確実に機能しないため、Drupalのコアcronを使用することにしました(/ etc/crontabを介して) )Poormanscronを使用するのではなく。

https://www.drupal.org/cron に関するドキュメントはこう述べています:

「自動cron」を無効にする

Cronを無効にするもう1つの方法は、settings.phpに次の行を追加することです。$ conf ['cron_safe_threshold'] = 0;これにより、admin/config/system/cronの設定が「Never」に修正され、管理ユーザーはそれを上書きできないことに注意してください。

$conf['cron_safe_threshold'] = 0; settings.phpファイルにありますが、admin/config/system/cronに移動しても、次のように表示されます。

Cron設定
3時間ごとにcronを実行します

admin/config/system/cronの設定を「しない」に実際に修正するとはどういう意味ですか?

  1. 表示される値は「なし」に設定されており、変更できません

  2. {variables}テーブルの値は0に等しい固定値に上書きされ、admin/config/system/cronに表示されるドロップダウン値は無関係です。

pS.

利用可能な$ conf設定を見つける簡単な方法がこれよりもあるはずです

1)Drupal8のcronは実際にはコアモジュールによって制御されていることを理解する

cd web/core/modules/automated_cron

2)drupal :: config()の割り当てを探します

grep -i "drupal::config(" *.module
    $automated_cron_settings = \Drupal::config('automated_cron.settings');

3)見つかったそれぞれについて、設定可能な変数を取得する

grep -i "automated_cron_settings" *.module | grep "=>"
    '#default_value' => $automated_cron_settings->get('interval'),

注:default.settings.php

 * Example:
 * @code
 *   $conf1) realize that cron in Drupal8 is actually controlled by a core module

     cd web/core/modules/automated_cron

     2) look for any drupal::config() assignments

         grep -i "drupal::config(" *.module
                 $automated_cron_settings = \Drupal::config('automated_cron.settings');

                 3) for each one found, get set-able vars
                     grep -i "automated_cron_settings" *.module | grep "=>"
                             '#default_value' => $automated_cron_settings->get('interval'),
                             ig_directories = array(
 *     CONFIG_SYNC_DIRECTORY => '/directory/outside/webroot',
 *   );
 * @endcode
 */

Re:自動化されたcron

そして、「より簡単な」方法:

drush cli | grep -i cron
    automated_cron.settings
    system.cron

drush cget automated_cron.settings
    interval: 10800                                                                              
    ...

drush cget system.cron       
    threshold:                                                                                   
      requirements_warning: 172800                                                               
      requirements_error: 1209600                                              
    ...
4
user58258

この設定はDrupal 7.用です。Drupal 8の場合、同等のものはautomated_cron.settings.intervalとして構成管理システムにあります。 Drupal 7、あなたは追加できます:

$config['automated_cron.settings']['interval'] = 0;

settings.php

他の質問に対処するために、automated_cron.settings.intervalcron_safe_thresholdの関連性は、Drupalの実行が許可されている最後のcron実行からの最小時間(秒単位)ですこの値は、FALSEとして解釈される0のしきい値について( D7D8 )がチェックされるため、cronを実行することはありません。

4
Shawn Conn