(b *testing.B)
| 531 | } |
| 532 | |
| 533 | func BenchmarkQueue(b *testing.B) { |
| 534 | ctx := context.Background() |
| 535 | log := zap.NewNop() |
| 536 | red := redis.NewClient(&redis.Options{ |
| 537 | Addr: "localhost:6379", |
| 538 | }) |
| 539 | |
| 540 | processOk := func(ctx context.Context, data []byte, info QueueItemInfo) error { |
| 541 | return nil |
| 542 | } |
| 543 | queue := NewRedisQueue(log, red, "queue_test") |
| 544 | queue.Config.MaxQueuedProcessableItemsLowPrio = 1000000 |
| 545 | queue.Config.MaxQueuedProcessableItemsHighPrio = 1000000 |
| 546 | queue.Config.MaxQueuedUnprocessableItemsLowPrio = 1000000 |
| 547 | queue.Config.MaxQueuedUnprocessableItemsHighPrio = 1000000 |
| 548 | err := queue.CleanQueues(ctx) |
| 549 | require.NoError(b, err) |
| 550 | |
| 551 | procCtx, procCancel := context.WithCancel(ctx) |
| 552 | wg := queue.StartProcessLoop(procCtx, []ProcessFunc{processOk}) |
| 553 | require.NoError(b, err) |
| 554 | |
| 555 | // 10kb of data |
| 556 | data := make([]byte, 1024*10) |
| 557 | b.SetBytes(int64(len(data))) |
| 558 | |
| 559 | b.ResetTimer() |
| 560 | for i := 0; i < b.N; i++ { |
| 561 | err = queue.Push(ctx, []byte("test"), false, 1, 1) |
| 562 | require.NoError(b, err) |
| 563 | } |
| 564 | b.StopTimer() |
| 565 | procCancel() |
| 566 | wg.Wait() |
| 567 | err = queue.CleanQueues(ctx) |
| 568 | require.NoError(b, err) |
| 569 | } |
nothing calls this directly
no test coverage detected