chore(buffer): iron out the buffer issues

This commit is contained in:
Carl-Gerhard Lindesvärd
2024-09-19 21:38:40 +02:00
parent e18ac4d79e
commit 25f329a4cd
11 changed files with 164 additions and 54 deletions

View File

@@ -0,0 +1,49 @@
[
{
"headers": {
"openpanel-client-id": "5b679c47-9ec0-470a-8944-a9ab8f42b14f",
"x-client-ip": "221.145.77.175",
"user-agent": "Opera/13.66 (Macintosh; Intel Mac OS X 10.8.3 U; GV Presto/2.9.183 Version/11.00)",
"origin": "https://classic-hovel.info"
},
"track": {
"type": "track",
"payload": {
"name": "click_button"
}
}
},
{
"headers": {
"openpanel-client-id": "5b679c47-9ec0-470a-8944-a9ab8f42b14f",
"x-client-ip": "221.145.77.175",
"user-agent": "Opera/13.66 (Macintosh; Intel Mac OS X 10.8.3 U; GV Presto/2.9.183 Version/11.00)",
"origin": "https://classic-hovel.info"
},
"track": {
"type": "track",
"payload": {
"name": "click_button_2"
}
}
},
{
"headers": {
"openpanel-client-id": "5b679c47-9ec0-470a-8944-a9ab8f42b14f",
"x-client-ip": "221.145.77.175",
"user-agent": "Opera/13.66 (Macintosh; Intel Mac OS X 10.8.3 U; GV Presto/2.9.183 Version/11.00)",
"origin": "https://classic-hovel.info"
},
"track": {
"type": "track",
"payload": {
"name": "screen_view",
"properties": {
"__referrer": "https://www.google.com",
"__path": "https://classic-hovel.info/beneficium-arcesso-quisquam",
"__title": "Hic thesis laboriosam copiose admoveo sufficio."
}
}
}
}
]

View File

@@ -140,8 +140,9 @@ function scrambleEvents(events: Event[]) {
return events.sort(() => Math.random() - 0.5);
}
// Distribute events over 6 minutes
const SIX_MINUTES_MS = 3 * 60 * 1000;
// Distribute events over X minutes
const MINUTES = 3;
const SIX_MINUTES_MS = 1000 * 60 * MINUTES;
const startTime = Date.now();
let lastTriggeredIndex = 0;
@@ -155,13 +156,14 @@ async function triggerEvents(file: string) {
return;
}
const eventsToTrigger = Math.floor(
generatedEvents.length * (elapsedTime / SIX_MINUTES_MS),
const eventsToTrigger = Math.min(
Math.ceil(generatedEvents.length * (elapsedTime / SIX_MINUTES_MS)),
generatedEvents.length,
);
// Send events that haven't been triggered yet
for (let i = lastTriggeredIndex; i < eventsToTrigger; i++) {
console.log('asbout to send');
console.log('about to send');
const event = generatedEvents[i]!;
try {
@@ -171,7 +173,7 @@ async function triggerEvents(file: string) {
console.error(`Failed to send event ${i + 1}:`, error);
}
console.log(
`sending ${event.track.payload.properties.__path} from user ${event.headers['user-agent']}`,
`sending ${event.track.payload?.properties?.__path} from user ${event.headers['user-agent']}`,
);
}
@@ -184,6 +186,8 @@ async function triggerEvents(file: string) {
if (remainingEvents > 0) {
setTimeout(() => triggerEvents(file), 50); // Check every 50ms
} else {
console.log('All events triggered.');
}
console.log(`Total events to trigger: ${generatedEvents.length}`);