crontab 定时执行任务所定的时间怎么做成活的?

拿yii2框架来讲:
定时配置文件console\config\params.php配置如下:

clipboard.png

问题:

1、把上图红框部分的定时从数据库获取,遇到
`PHP Fatal error:  Call to a member function getDb() on null in /home/wwwroot/default/ceshi/vendor/yiisoft/yii2/db/ActiveRecord.php on line 133`
错误,怎么解决?

2、yii2 的params.php如何获取数据库数据?
阅读 3.8k
2 个回答

写成匿名函数的形式呢

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'](); //这么写

(谢邀)抱歉,对于yii2不了解。但是对于TP的做法,我会把动态生成时间配置,在公共控制器读取数据库设置的时间,生成配置参数。这样就可以愉快的使用了(可以参考一下,希望对你有所帮助)。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题