调整了数据库缓存的调用,部分使用是直接使用的value,可能无法触发缓存计数

This commit is contained in:
zlzw 2024-12-02 14:32:39 +08:00
parent 0497e9d0e2
commit 1803ef845c
5 changed files with 9 additions and 9 deletions

View File

@ -10,6 +10,7 @@ import com.yutou.common.databases.AbsDatabasesBean;
import com.yutou.common.databases.SQLiteManager; import com.yutou.common.databases.SQLiteManager;
import com.yutou.common.okhttp.HttpDownloadUtils; import com.yutou.common.okhttp.HttpDownloadUtils;
import com.yutou.common.utils.Log; import com.yutou.common.utils.Log;
import lombok.Getter;
import java.io.File; import java.io.File;
import java.sql.PreparedStatement; import java.sql.PreparedStatement;
@ -20,6 +21,7 @@ import java.util.Date;
import java.util.List; import java.util.List;
public class BiliLiveDatabase extends SQLiteManager { public class BiliLiveDatabase extends SQLiteManager {
@Getter
LiveRoomConfig config; LiveRoomConfig config;
String fileName; String fileName;
File rootPath; File rootPath;

View File

@ -163,7 +163,6 @@ public class WebSocketServer {
private class WebSocketClientTh extends WebSocketClient { private class WebSocketClientTh extends WebSocketClient {
private final LiveRoomConfig roomConfig; private final LiveRoomConfig roomConfig;
private final HeartbeatTask heartbeatTask; private final HeartbeatTask heartbeatTask;
BiliLiveDatabase liveDatabase;
private final boolean isUser; private final boolean isUser;
public WebSocketClientTh(URI serverUri, LiveRoomConfig roomId, boolean isUser) { public WebSocketClientTh(URI serverUri, LiveRoomConfig roomId, boolean isUser) {
@ -171,7 +170,6 @@ public class WebSocketServer {
Log.i("WebSocketClientTh.WebSocketClientTh : " + serverUri); Log.i("WebSocketClientTh.WebSocketClientTh : " + serverUri);
this.isUser = isUser; this.isUser = isUser;
this.roomConfig = roomId; this.roomConfig = roomId;
liveDatabase = liveDatabasesService.getLiveDatabase(roomConfig.getRoomId());
Brotli4jLoader.ensureAvailability(); Brotli4jLoader.ensureAvailability();
heartbeatTask = new HeartbeatTask(); heartbeatTask = new HeartbeatTask();
addHeader("User-Agent", ConfigTools.getUserAgent()); addHeader("User-Agent", ConfigTools.getUserAgent());
@ -253,7 +251,7 @@ public class WebSocketServer {
// Log.i("协议:" + useHeader + " 命令数:" + body.getBodyList().size()); // Log.i("协议:" + useHeader + " 命令数:" + body.getBodyList().size());
for (JSONObject json : body.getBodyList()) { for (JSONObject json : body.getBodyList()) {
WSData parse = WSData.parse(json); WSData parse = WSData.parse(json);
liveDatabase.addSource(parse); liveDatabasesService.getLiveDatabase(roomConfig.getRoomId()).addSource(parse);
// Log.i("解压:" + parse); // Log.i("解压:" + parse);
} }
// Log.i(); // Log.i();

View File

@ -6,6 +6,7 @@ import com.yutou.biliapi.bean.live.LiveRoomConfig;
import com.yutou.biliapi.bean.live.database.LiveConfigDatabaseBean; import com.yutou.biliapi.bean.live.database.LiveConfigDatabaseBean;
import com.yutou.biliapi.databases.BiliLiveConfigDatabase; import com.yutou.biliapi.databases.BiliLiveConfigDatabase;
import com.yutou.biliapi.databases.BiliLiveDatabase; import com.yutou.biliapi.databases.BiliLiveDatabase;
import com.yutou.common.utils.Log;
import lombok.Getter; import lombok.Getter;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils; import org.springframework.util.StringUtils;
@ -24,6 +25,7 @@ public class LiveDatabasesService {
if (it.wasEvicted()) { if (it.wasEvicted()) {
if (it.getValue() != null) { if (it.getValue() != null) {
((BiliLiveDatabase) it.getValue()).close(); ((BiliLiveDatabase) it.getValue()).close();
Log.i("缓存到期移除", ((BiliLiveDatabase) it.getValue()).getConfig().getRoomId());
} }
} }
}) })
@ -34,7 +36,7 @@ public class LiveDatabasesService {
configDatabase = new BiliLiveConfigDatabase(); configDatabase = new BiliLiveConfigDatabase();
} }
public String getCacheInfo() { public String getCacheInfo() {
return "总数:"+liveDatabases.size()+","+ Arrays.toString(liveDatabases.asMap().keySet().toArray())+","+ Arrays.toString(liveDatabases.asMap().values().toArray()); return "总数:" + liveDatabases.size() + "," + Arrays.toString(liveDatabases.asMap().keySet().toArray()) + "," + Arrays.toString(liveDatabases.asMap().values().toArray());
} }
public BiliLiveDatabase getLiveDatabase(String roomId) { public BiliLiveDatabase getLiveDatabase(String roomId) {

View File

@ -142,7 +142,6 @@ public class LiveVideoDownloadService {
String savePath; String savePath;
File rootPath; File rootPath;
LiveConfigDatabaseBean config; LiveConfigDatabaseBean config;
BiliLiveDatabase database;
LiveVideoDatabaseBean videoDatabaseBean = null; LiveVideoDatabaseBean videoDatabaseBean = null;
LiveRoomInfo roomInfo; LiveRoomInfo roomInfo;
@ -200,7 +199,6 @@ public class LiveVideoDownloadService {
config.setLogin(StringUtils.hasText(bean.getRecordUid())); config.setLogin(StringUtils.hasText(bean.getRecordUid()));
config.setRoomInfo(roomInfo); config.setRoomInfo(roomInfo);
config.setRootPath(bean.getRecordPath()); config.setRootPath(bean.getRecordPath());
database = liveDatabasesService.getLiveDatabase(bean.getRoomId());
saveLiveInfo(roomInfo); saveLiveInfo(roomInfo);
api.getLiveRoomPlayInfo( api.getLiveRoomPlayInfo(
bean.getRoomId(), bean.getRoomId(),
@ -356,7 +354,7 @@ public class LiveVideoDownloadService {
} }
if (videoDatabaseBean != null) { if (videoDatabaseBean != null) {
videoDatabaseBean.setStopTime(new Date()); videoDatabaseBean.setStopTime(new Date());
database.addLiveInfo(videoDatabaseBean); liveDatabasesService.getLiveDatabase(bean.getRoomId()).addLiveInfo(videoDatabaseBean);
} }
stopRecordDanmu(); stopRecordDanmu();
} }
@ -373,7 +371,7 @@ public class LiveVideoDownloadService {
videoDatabaseBean.setPath(savePath); videoDatabaseBean.setPath(savePath);
videoDatabaseBean.setRoomInfoJson(JSONObject.toJSONString(roomInfo)); videoDatabaseBean.setRoomInfoJson(JSONObject.toJSONString(roomInfo));
videoDatabaseBean.setStartTime(new Date()); videoDatabaseBean.setStartTime(new Date());
database.addLiveInfo(videoDatabaseBean); liveDatabasesService.getLiveDatabase(bean.getRoomId()).addLiveInfo(videoDatabaseBean);
recordDanmu(); recordDanmu();
// LiveInfoNfoTools.saveLiveInfoNfo(roomInfo, rootPath.getAbsolutePath(), new File(savePath).getName().replace(".flv", ".nfo")); // LiveInfoNfoTools.saveLiveInfoNfo(roomInfo, rootPath.getAbsolutePath(), new File(savePath).getName().replace(".flv", ".nfo"));
} }

View File

@ -88,7 +88,7 @@ public abstract class SQLiteManager {
} }
} }
public void close() { public synchronized void close() {
try { try {
conn.close(); conn.close();
} catch (SQLException throwables) { } catch (SQLException throwables) {