execute method
执行预加载
Implementation
Future<PreloadExecutionResult> execute({ProviderContainer? container}) async {
_log('[EXECUTE] ========== 预加载开始执行 ==========');
_log('[EXECUTE] 当前注册任务数: ${_registeredTasks.length}');
if (_registeredTasks.isEmpty) {
_log('[EXECUTE] 没有注册任务,直接返回成功');
return const PreloadExecutionResult(
result: PreloadResult.success,
completedTasks: 0,
failedTasks: 0,
totalTasks: 0,
failedTaskDetails: {},
executionTime: Duration.zero,
);
}
if (_tracker.state == PreloadManagerState.running) {
_log('[EXECUTE] 预加载已在进行中,抛出异常');
throw PreloadException('预加载已在进行中');
}
_log('[EXECUTE] 状态设置为: running');
try {
final result = await _getEngine().execute(
_registeredTasks,
container: container,
);
_log('[EXECUTE] ========== 预加载执行完成 ==========');
_log(
'[EXECUTE] 结果: ${result.result}, '
'成功: ${result.completedTasks}, '
'失败: ${result.failedTasks}, '
'耗时: ${result.executionTime.inMilliseconds}ms',
);
return result;
} catch (e) {
_logError('[EXECUTE] 预加载执行失败', e);
if (_config.onError != null) {
_config.onError!(e, StackTrace.current);
}
return PreloadExecutionResult(
result: PreloadResult.failed,
completedTasks: 0,
failedTasks: _registeredTasks.length,
totalTasks: _registeredTasks.length,
failedTaskDetails: {e.toString(): e},
executionTime: Duration.zero,
);
}
}