recherche

Maison  >  Questions et réponses  >  le corps du texte

php - Comment s'assurer que l'heure définie par Crontab est régulière pour exécuter les tâches?

Prenons l'exemple du framework yii2 :
Le fichier de configuration de synchronisation console\config\params.php est configuré comme suit :

< /p>

Question :

1. Obtenez le timing de la case rouge dans l'image ci-dessus à partir de la base de données.
`Erreur fatale PHP : Appel à une fonction membre getDb() sur null dans /home/wwwroot/default/ceshi/vendor/yiisoft/yii2/db/ActiveRecord.php à la ligne 133`
Erreur, comment la résoudre ?

2. Comment obtenir les données de la base de données dans params.php de yii2 ? 
PHPzPHPz2774 Il y a quelques jours570

répondre à tous(2)je répondrai

  • 習慣沉默

    習慣沉默2017-05-16 13:02:57

    Écrivez-le sous la forme d'une fonction anonyme

    return [
        'adminEmail'=>'admin@xx.com',
        'cronJobs'=>[
            'contact/send'=>[
                    //code
            ],
            'contact/hsend'=>[
                'cron'=>function(){
                    //todo 获取数据库中的定时配置(可以在外面写个自定义函数获取)
                    $_cron2 = you_function();
                    return $_cron2;
                }
            ]
        ]
    ]
    
    
    
    <?php
    
    $data = [
        'cronJobs'=>[
            'send'=>[
                //code
            ],
            'hsend'=>[
                'cron'=>function(){
                    return '888888';
                }
            ]
        ]
    ];
    echo $data['cronJobs']['hsend']['cron'](); //这么写

    répondre
    0
  • phpcn_u1582

    phpcn_u15822017-05-16 13:02:57

    (Merci pour l'invitation) Désolé, je ne connais pas grand chose à yii2. Mais pour l'approche TP, je générerai dynamiquement la configuration de l'heure, lirai l'heure de réglage de la base de données dans le contrôleur public et générerai les paramètres de configuration. De cette façon, vous pouvez l'utiliser avec bonheur (vous pouvez vous y référer, j'espère qu'il vous sera utile).

    répondre
    0
  • Annulerrépondre