im/app/common/task/ClearMessage.php

69 lines
1.8 KiB
PHP
Executable File
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
namespace app\common\task;
use yunwuxin\cron\Task;
use think\Exception;
use app\manage\model\{Config};
use app\enterprise\model\Message;
// 自动清理消息定时任务
class ClearMessage extends Task
{
// 定时任务日志内容
protected $content='';
protected $path='';
protected $daytime=86400;
/**
* 自动写入定时任务日志
* @return \think\response\Json
*/
protected function writeLog($text)
{
$this->path = root_path() . 'crontab.txt';
$content = '重置中!';
if (!file_exists($this->path)) {
fopen($this->path, 'w');
}
if (date('d') != 10) {
$content = file_get_contents($this->path);
}
file_put_contents($this->path, $content . date('Y-m-d H:i:s') . '' . $text . PHP_EOL);
}
public function configure()
{
//设置每天8点执行
$this->dailyAt('02:00');
}
/**
* 执行任务
* @return mixed
*/
protected function execute()
{
$this->writeLog('任务开始执行');
if(date('H:i')!='02:00'){
return false;
}
try {
$config=Config::getSystemInfo();
$status=$config['chatInfo']['msgClear'] ?? false;
$days=$config['chatInfo']['msgClearDay'] ?? 0;
if($status && $days){
$time=time() - ($days * $this->daytime);
$where[]=['create_time','<',$time];
// $where[]=['is_last','=',0];
Message::where($where)->delete();
}
$this->writeLog('消息清理成功');
} catch (Exception $e) {
$this->writeLog('消息清理失败:'.$e->getMessage());
}
}
}