Toggle navigation
Toggle navigation
This project
Loading...
Sign in
flutter_package
/
auto_track_plugin
Go to a project
Toggle navigation
Projects
Groups
Snippets
Help
Toggle navigation pinning
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Network
Create a new issue
Builds
Commits
Authored by
顾海波
2025-02-17 17:54:43 +0800
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
f9d93526437d89a6f92f7a53e68433a5af1916e0
f9d93526
1 parent
72ce35e7
【修复】数据库初始化
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
13 additions
and
6 deletions
lib/auto_track/config/queue.dart
lib/auto_track/config/queue.dart
View file @
f9d9352
...
...
@@ -16,7 +16,7 @@ import '../log/logger.dart';
class
AutoTrackQueue
{
static
final
AutoTrackQueue
instance
=
AutoTrackQueue
.
_
();
late
Database
database
;
Database
?
database
;
Future
<
void
>
_lastTask
=
Future
.
value
();
void
post
(
Future
<
void
>
Function
()
task
)
{
...
...
@@ -29,10 +29,16 @@ class AutoTrackQueue {
//异步任务
post
(()
async
{
database
=
await
openTrackDatab
ase
();
await
_checkInitDataB
ase
();
});
}
Future
<
void
>
_checkInitDataBase
()
async
{
if
(
database
!=
null
)
{
database
=
await
openTrackDatabase
();
}
}
Future
<
Database
>
openTrackDatabase
()
async
{
final
databasePath
=
await
getDatabasesPath
();
final
pathString
=
path
.
join
(
databasePath
,
'track.db'
);
...
...
@@ -55,9 +61,9 @@ class AutoTrackQueue {
final
httpClient
=
HttpClient
();
void
appendQueue
(
TrackModel
model
)
{
if
(
database
==
null
)
return
;
post
(()
async
{
await
database
.
insert
(
await
_checkInitDataBase
();
await
database
!.
insert
(
"track"
,
Track
(
event:
jsonEncode
(
model
.
toMap
()),
date:
DateTime
.
now
())
.
toMap
());
...
...
@@ -82,6 +88,7 @@ class AutoTrackQueue {
Future
<
void
>
flush
()
async
{
try
{
AutoTrackLogger
.
getInstance
().
debug
(
"@@@start flush"
);
await
_checkInitDataBase
();
if
(
database
==
null
)
{
AutoTrackLogger
.
getInstance
().
debug
(
'数据库未初始化,跳过 flush'
);
...
...
@@ -90,7 +97,7 @@ class AutoTrackQueue {
final
List
<
TrackModel
>
uploadList
=
[];
List
<
Map
<
String
,
dynamic
>>
events
=
await
database
.
query
(
"track"
,
List
<
Map
<
String
,
dynamic
>>
events
=
await
database
!
.
query
(
"track"
,
columns:
[
"id"
,
"event"
,
"date"
],
limit:
100
);
if
(
events
.
isEmpty
)
{
AutoTrackLogger
.
getInstance
().
debug
(
"@@@events is empty"
);
...
...
@@ -251,7 +258,7 @@ class AutoTrackQueue {
}
else
{
//批量删除
for
(
var
event
in
events
)
{
await
database
.
delete
(
"track"
,
await
database
!
.
delete
(
"track"
,
where:
"id = ?"
,
whereArgs:
[
event
[
'id'
]]);
}
}
...
...
Please
register
or
login
to post a comment