go-esworker is an async worker that data can bulk insert, update to the BigQuery.
It's a library for golang.
$ go get -u github.com/gjbae1212/go-bqworker
// pseudo code
package main
import (
"context"
"time"
"github.com/gjbae1212/go-bqworker"
)
func main() {
streamer, _ := bqworker.NewStreamer([]*bqworker.TableSchemaGroup{},
bqworker.WithQueueSize(7000), bqworker.WithWorkerSize(6), bqworker.WithWorkerStack(500),
bqworker.WithMaxRetry(2), bqworker.WithWorkerWaitDuration(time.Second),
bqworker.WithDispatcherLoopWaitDuration(time.Hour), bqworker.WithErrorHandler(func(err error) {}))
streamer.Start()
// async
streamer.AddRow(ctx, row)
// sync
streamer.AddRowSync(ctx, row)
}
This project is following The MIT.