web-dev-qa-db-fra.com

Comment désactiver Cron sur un serveur de transfert / développement?

J'ai une configuration de mise en scène et de développement, mais je me demande si je peux désactiver cron sur ceux-ci car je ne veux pas de tir cron. C'est principalement parce que j'ai un module de migration de sauvegarde prévu pour sauvegarder mon site tous les jours, mais je ne veux pas que cela s'exécute à chaque fois.

6

Oui, vous pouvez le faire dans votre fichier settings.php (comme vous l'avez mentionné, c'est la seule différence entre les versions).

Vous le feriez comme ceci (dans votre fichier settings.php):

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

Pour plus d'informations, voir Définition de variables dans le tableau settings.php $ conf d'un site .

Modifier Comment cela fonctionne:

  1. Les variables sont chargées à partir de la base de données (ou du cache si elles ont déjà été mises en cache).
  2. Si ces variables n'étaient pas déjà dans le cache, elles sont enregistrées dans le cache.
  3. Les variables $ conf du fichier de paramètres sont ajoutées aux variables et ont priorité sur les variables de la base de données.

Les variables de la base de données sont donc mises en cache, mais pas les variables de settings.php.

16
rooby

Comme d'autres l'ont dit, il existe des modules pour changer d'environnements entre différents serveurs. Par exemple, un serveur de développement vs un serveur de test vs un serveur de production.

Quelques-uns sont: Environnement et Environnement Drush .

L'environnement, par exemple, vous permet d'écrire votre propre hook pour gérer facilement ce qui se passe lorsque vous passez à un nouvel environnement. Depuis la page du module:

/**
 * 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;
  }
}
?>

Vous pouvez sans difficulté écrire une ligne de PHP qui désactive Cron si vous êtes dans le serveur d'environnement Testing. J'utilise le hook sur 1 projet d'Environnement pour effectuer les tâches suivantes sur un serveur hors production:

  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

Accédez à/admin/config/system/cron et définissez-le sur "Jamais". Si vous avez une tâche crontab externe, désactivez-la.

3
Triskelion

Si votre préoccupation concerne uniquement la sauvegarde et la migration, vous pouvez exporter les paramètres de sauvegarde et de migration vers settings.php (branche 2.x) ou exporter les paramètres de sauvegarde et de migration à l'aide du module Fonctionnalités (branche 3.x).

Je le fais moi-même parce que je veux que les choses se rapprochent le plus possible de la production, mais je ne peux pas faire fonctionner Backup and Migrate tout le temps.

0
Patrick Kenny