一. 首先在项目目录中找到crmeb_merchant/crmeb/listens目录:
(至于任务的任务的名字自己定义就好
二. 在定时任务的文件(AutoDatabaseBackupListen.php)中编写如下代码:
下面可复制:
**public function **handle($event): void**
{
*//时间为毫秒 如** 1000 表示 1 秒
** Timer::tick*(1000 * 60 * 60, **function () {
*//获取时间**
** *$H = date('H',time());
if($H == 2 ){ *//如果当前时间是 2 点 就执行
** *$config = array(
**'level' => 5, *//数据库备份卷大小**
** **'compress' => 1,//数据库备份文件是否启用压缩** 0不压缩 1 压缩
** *);
$service = **new MysqlBackupService($config); *//数据库操作的** service**
** ***try {
$data = $service->dataList(); *//获取数据库的所有表**
** *foreach($data **as $item){ *//循环执行**
** *$res = $service->backup($item['name'],0);
**if **($res == **false && $res != 0) {
$data .= $item['name'**] . '|';
}
}
} **catch (\Exception $e) {
*//如果执行失败则存入日志**
** Log::info('自动删除导出文件失败*:'.$e->getMessage());
}
}
});
}
(到这里定时任务需要做的功能就好了)
三. 找到crmeb_merchant/app/event.php文件插入代码 \crmeb\listens\AutoDatabaseBackupListen::**class**,
:
(类名改成你自己定义的名就好)
四.在项目根目录下找到.env文件,插入 INSTALLED = true :
五. 最后重启swoole服务就ok了, php think swoole restart
.
六. 然后就可以在crmeb_merchant/backup/文件中查看备份的文件,也可以在后台数据库备份文件列表中查看
扫码了解更多
{{item.user_info.nickname ? item.user_info.nickname : item.user_name}}
作者 管理员 企业
{{itemf.name}}
{{itemc.user_info.nickname}}
{{itemc.user_name}}
回复 {{itemc.comment_user_info.nickname}}
{{itemf.name}}