Skip to content

Commit 24feea4

Browse files
committed
polish up traffic.atl trim
1 parent a50c151 commit 24feea4

1 file changed

Lines changed: 35 additions & 10 deletions

File tree

bin/traffic.atl

Lines changed: 35 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,10 @@ extends Atlantis\TerminalApp {
2727
////////////////////////////////////////////////////////////////
2828

2929
#[Console\Meta\Command('get')]
30-
#[Console\Meta\Value('--tz', TRUE, 'Default: UTC')]
31-
#[Console\Meta\Value('--date', TRUE, 'Format: YYYY-MM-DD')]
32-
#[Console\Meta\Value('--dstart', TRUE, 'Format: YYYY-MM-DD')]
33-
#[Console\Meta\Value('--dstop', TRUE, 'Format: YYYY-MM-DD')]
30+
#[Console\Meta\Value('--tz', 'Default: UTC')]
31+
#[Console\Meta\Value('--date', 'Format: YYYY-MM-DD')]
32+
#[Console\Meta\Value('--dstart', 'Format: YYYY-MM-DD')]
33+
#[Console\Meta\Value('--dstop', 'Format: YYYY-MM-DD')]
3434
public function
3535
HandleGetStats():
3636
int {
@@ -80,18 +80,29 @@ extends Atlantis\TerminalApp {
8080
////////////////////////////////////////////////////////////////
8181

8282
#[Console\Meta\Command('trim')]
83+
#[Console\Meta\Toggle('--commit', 'Without this nothing bad can happen.')]
84+
#[Console\Meta\Value('--limit', 'Delete the rows in chunks of <limit> rows to be nice to the server.')]
85+
#[Console\Meta\Toggle('--1m', 'Delete rows older than 1 month.')]
86+
#[Console\Meta\Toggle('--2m', 'Delete rows older than 2 months.')]
87+
#[Console\Meta\Toggle('--3m', 'Delete rows older than 3 months (and the default).')]
88+
#[Console\Meta\Toggle('--6m', 'Delete rows older than 6 months.')]
8389
public function
8490
HandleTrim():
8591
int {
8692

8793
$OptCommit = $this->GetOption('commit') ?? FALSE;
94+
$OptLimit = (int)$this->GetOption('limit');
95+
8896
$OptTimeThen = match(TRUE) {
8997
($this->GetOption('1m'))
9098
=> '-30 days',
9199

92100
($this->GetOption('2m'))
93101
=> '-60 days',
94102

103+
($this->GetOption('3m'))
104+
=> '-90 days',
105+
95106
($this->GetOption('6m'))
96107
=> '-180 days',
97108

@@ -123,6 +134,11 @@ extends Atlantis\TerminalApp {
123134
'TimeCreated <= :ThenTime'
124135
));
125136

137+
if($OptLimit > 0) {
138+
//$QueryFind->Limit($OptLimit);
139+
$QueryTrim->Limit($OptLimit);
140+
}
141+
126142
$Args = [
127143
':ThenTime' => $Then->GetUnixtime()
128144
];
@@ -136,25 +152,34 @@ extends Atlantis\TerminalApp {
136152
'QueryTrim' => (string)$QueryTrim
137153
]);
138154

155+
$Timer->Reset()->Start();
139156
$Found = $QueryFind->Query($Args);
157+
$Timer->Stop();
140158

141159
$this->PrintStatus(sprintf(
142-
'Found %d rows...',
143-
$Found->GetCount()
160+
'Found %s rows in %s...',
161+
number_format($Found->GetCount()),
162+
(new Common\Units\Timeframe(
163+
Start: 0, Stop: $Timer->Get() + 1
164+
))->Get(Common\Units\Timeframe::FormatLong)
144165
));
145166

146167
if($OptCommit) {
147-
$Timer->Start();
168+
HitIt:
169+
$Timer->Reset()->Start();
148170
$Trimmed = $QueryTrim->Query($Args);
149171
$Timer->Stop();
150172

151173
$this->PrintStatus(sprintf(
152-
'Trimmed %d rows in %s...',
153-
$Trimmed->GetCount(),
174+
'Trimmed %s rows in %s...',
175+
number_format($Trimmed->GetCount()),
154176
(new Common\Units\Timeframe(
155177
Start: 0, Stop: $Timer->Get() + 1
156-
))->Get()
178+
))->Get(Common\Units\Timeframe::FormatLong)
157179
));
180+
181+
if($Trimmed->GetCount() === $OptLimit)
182+
goto HitIt;
158183
}
159184

160185
return 0;

0 commit comments

Comments
 (0)