feat: use groupmq instead of bullmq for incoming events (#206)

* wip

* wip working group queue

* wip

* wip

* wip

* fix: groupmq package (tests failed)

* minor fixes

* fix: zero is fine for duration

* add logger

* fix: make buffers more lightweight

* bump groupmq

* new buffers and bump groupmq

* fix: buffers based on comments

* fix: use profileId as groupId if exists

* bump groupmq

* add concurrency env for only events
This commit is contained in:
Carl-Gerhard Lindesvärd
2025-10-04 21:07:55 +02:00
committed by GitHub
parent ca4a880acd
commit 0b4fcbad69
23 changed files with 1292 additions and 354 deletions

View File

@@ -1,19 +1,20 @@
name: Docker Build and Push
on:
workflow_dispatch:
push:
# branches: [ "main" ]
paths:
- 'apps/api/**'
- 'apps/worker/**'
- 'apps/public/**'
- 'packages/**'
- '!packages/sdks/**'
- '**Dockerfile'
- '.github/workflows/**'
- "apps/api/**"
- "apps/worker/**"
- "apps/public/**"
- "packages/**"
- "!packages/sdks/**"
- "**Dockerfile"
- ".github/workflows/**"
env:
repo_owner: 'openpanel-dev'
repo_owner: "openpanel-dev"
jobs:
changes:
@@ -27,7 +28,7 @@ jobs:
- uses: dorny/paths-filter@v2
id: filter
with:
base: 'main'
base: "main"
filters: |
api:
- 'apps/api/**'
@@ -46,17 +47,27 @@ jobs:
needs: changes
if: ${{ needs.changes.outputs.api == 'true' || needs.changes.outputs.worker == 'true' || needs.changes.outputs.public == 'true' }}
runs-on: ubuntu-latest
services:
redis:
image: redis:7-alpine
ports:
- 6379:6379
options: >-
--health-cmd "redis-cli ping || exit 1"
--health-interval 5s
--health-timeout 3s
--health-retries 20
steps:
- uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
node-version: "20"
- name: Install pnpm
uses: pnpm/action-setup@v4
- name: Get pnpm store directory
shell: bash
run: |
@@ -69,21 +80,21 @@ jobs:
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-pnpm-store-
- name: Install dependencies
run: pnpm install
- name: Codegen
run: pnpm codegen
# - name: Run Biome
# run: pnpm lint
- name: Run TypeScript checks
run: pnpm typecheck
# - name: Run tests
# run: pnpm test
- name: Run tests
run: pnpm test
build-and-push-api:
permissions:
@@ -91,7 +102,7 @@ jobs:
needs: [changes, lint-and-test]
if: ${{ needs.changes.outputs.api == 'true' }}
runs-on: ubuntu-latest
steps:
steps:
- name: Checkout repository
uses: actions/checkout@v4
@@ -118,14 +129,14 @@ jobs:
ghcr.io/${{ env.repo_owner }}/api:${{ github.sha }}
build-args: |
DATABASE_URL=postgresql://dummy:dummy@localhost:5432/dummy
build-and-push-worker:
permissions:
packages: write
needs: [changes, lint-and-test]
if: ${{ needs.changes.outputs.worker == 'true' }}
runs-on: ubuntu-latest
steps:
steps:
- name: Checkout repository
uses: actions/checkout@v4
@@ -151,4 +162,4 @@ jobs:
ghcr.io/${{ env.repo_owner }}/worker:latest
ghcr.io/${{ env.repo_owner }}/worker:${{ github.sha }}
build-args: |
DATABASE_URL=postgresql://dummy:dummy@localhost:5432/dummy
DATABASE_URL=postgresql://dummy:dummy@localhost:5432/dummy