<?php
namespace Module\Vendor\Schedule;
use Illuminate\Support\Facades\Log;
use ModStart\Core\Dao\ModelUtil;
use ModStart\Core\Util\TimeUtil;
use ModStart\Data\AbstractDataStorage;
use ModStart\Data\DataManager;
use Module\Vendor\Provider\Schedule\AbstractScheduleBiz;
class DataTempCleanScheduleBiz extends AbstractScheduleBiz
{
public function cron()
{
return $this->cronEveryHour();
}
public function title()
{
return 'data_temp 文件自动清理';
}
public function run()
{
$expiredRecords = ModelUtil::model('data_temp')
->where('created_at', '<', date('Y-m-d H:i:s', time() - TimeUtil::PERIOD_DAY))
->limit(100)
->get(['category', 'path'])->toArray();
foreach ($expiredRecords as $record) {
$path = AbstractDataStorage::DATA_TEMP . '/' . $record['category'] . '/' . $record['path'];
try {
DataManager::deleteDataTempByPath($path);
} catch (\Exception $e) {
Log::info('Vendor.DataTempCleanScheduleBiz.DeleteFail - ' . $path . ' - ' . $e->getMessage());
continue;
}
Log::info('Vendor.DataTempCleanScheduleBiz - ' . $path . ' deleted');
}
}
}