|
@@ -24,6 +24,7 @@ import (
|
|
"github.com/imgproxy/imgproxy/v3/ierrors"
|
|
"github.com/imgproxy/imgproxy/v3/ierrors"
|
|
"github.com/imgproxy/imgproxy/v3/imagedata"
|
|
"github.com/imgproxy/imgproxy/v3/imagedata"
|
|
"github.com/imgproxy/imgproxy/v3/imagetype"
|
|
"github.com/imgproxy/imgproxy/v3/imagetype"
|
|
|
|
+ "github.com/imgproxy/imgproxy/v3/imath"
|
|
"github.com/imgproxy/imgproxy/v3/metrics/cloudwatch"
|
|
"github.com/imgproxy/imgproxy/v3/metrics/cloudwatch"
|
|
"github.com/imgproxy/imgproxy/v3/metrics/datadog"
|
|
"github.com/imgproxy/imgproxy/v3/metrics/datadog"
|
|
"github.com/imgproxy/imgproxy/v3/metrics/newrelic"
|
|
"github.com/imgproxy/imgproxy/v3/metrics/newrelic"
|
|
@@ -71,7 +72,14 @@ func Init() error {
|
|
C.vips_cache_set_max_mem(0)
|
|
C.vips_cache_set_max_mem(0)
|
|
C.vips_cache_set_max(0)
|
|
C.vips_cache_set_max(0)
|
|
|
|
|
|
- C.vips_concurrency_set(1)
|
|
|
|
|
|
+ if lambdaFn := os.Getenv("AWS_LAMBDA_FUNCTION_NAME"); len(lambdaFn) > 0 {
|
|
|
|
+ // Set vips concurrency level to GOMAXPROCS if we are running in AWS Lambda
|
|
|
|
+ // since each function processes only one request at a time
|
|
|
|
+ // so we can use all available CPU cores
|
|
|
|
+ C.vips_concurrency_set(C.int(imath.Max(1, runtime.GOMAXPROCS(0))))
|
|
|
|
+ } else {
|
|
|
|
+ C.vips_concurrency_set(1)
|
|
|
|
+ }
|
|
|
|
|
|
if len(os.Getenv("IMGPROXY_VIPS_LEAK_CHECK")) > 0 {
|
|
if len(os.Getenv("IMGPROXY_VIPS_LEAK_CHECK")) > 0 {
|
|
C.vips_leak_set(C.gboolean(1))
|
|
C.vips_leak_set(C.gboolean(1))
|