web-dev-qa-db-ja.com

ステージング/開発サーバーでCronを無効にするにはどうすればよいですか?

私はステージングと開発のセットアップを持っていますが、cronの起動を望まないので、これらでcronを無効にできるかどうか疑問に思います。これは主に、毎日サイトをバックアップするようにスケジュールされたバックアップ移行モジュールがあるためですが、これを毎回実行する必要はありません。

6

はい、これはsettings.phpファイルで行うことができます(あなたが言ったように、それはバージョン間の唯一の違いです)。

(settings.phpファイルで)次のようにします。

// Disable drupal's built in cron trigger.
$conf['cron_safe_threshold'] = 0;

詳細は サイトのsettings.php $ conf配列での変数の定義 を参照してください。

編集これはどのように機能するかです:

  1. 変数はデータベース(または既にキャッシュされている場合はキャッシュ)からロードされます。
  2. それらの変数がまだキャッシュになかった場合、それらはキャッシュに保存されます。
  3. 設定ファイルの$ conf変数が変数に追加され、データベースの変数よりも優先されます。

したがって、データベースの変数はキャッシュされますが、settings.phpの変数はキャッシュされません。

16
rooby

他の人が言ったように、異なるサーバー間で環境を切り替えるためのモジュールがそこにあります。たとえば、開発サーバーvsテストサーバーvs本番サーバー。

いくつかは次のとおりです: 環境 および Drush環境

たとえば環境を使用すると、独自のフックを記述して、新しい環境に切り替えたときに何が起こるかを簡単に管理できます。モジュールページから:

/**
 * Implementation of hook_environment_switch().
 */
function YOUR_MODULE_environment_switch($target_env, $current_env) {
  // Declare each optional development-related module
  $devel_modules = array(
    'bulk_export',
    'context_ui',
    'devel',
    'devel_generate',
    'devel_node_access',
    'imagecache_ui',
    'update',
    'spaces_ui',
    'views_ui',
  );

  switch ($target_env) {
    case 'production':
      module_disable($devel_modules);
      drupal_set_message('Disabled development modules');
      return;
    case 'development':
      module_enable($devel_modules);
      drupal_set_message('Enabled development modules');
      return;
  }
}
?>

小さな問題なくPHPの行を書くと、Testing環境サーバーでCronがオフになります。1つのプロジェクトで環境のフックを使用して、次のタスクを実行しています。非本番サーバー:

  module_enable($devel_modules); // A list of modules to enable.
  drupal_flush_all_caches();
  drupal_set_message('Enabled development/staging modules');

  // Configure Enviroment Indicator Module
  variable_set('environment_indicator_color',"#d00c0c");
  variable_seT('environment_indicator_margin', 1);
  variable_set('environment_indicator_position', "right");
  variable_set('environment_indicator_text',"MY STAGING SERVER");
  variable_set('environment_indicator_enabled','1');
  drupal_set_message(t('Configured environment indicator.'));
5
tenken

/ admin/config/system/cronに移動し、「なし」に設定します。外部のcrontabタスクがある場合は、それを無効にします。

3
Triskelion

懸念がバックアップと移行だけの場合は、 バックアップと移行の設定をsettings.phpにエクスポート (2.xブランチ)、または機能モジュール(3.xブランチ)を使用してバックアップと移行の設定をエクスポートできます。

できる限り本番環境に近づけたいのですが、バックアップと移行を常に実行することができないため、これを自分で行います。

0
Patrick Kenny