kopia lustrzana https://github.com/bugout-dev/moonstream
45 wiersze
1.4 KiB
Go
45 wiersze
1.4 KiB
Go
package engine
|
|
|
|
import (
|
|
"context"
|
|
"fmt"
|
|
"log"
|
|
"time"
|
|
|
|
"github.com/jackc/pgx/v5/pgxpool"
|
|
|
|
probes "github.com/moonstream-to/api/probes/pkg"
|
|
)
|
|
|
|
var ENGINE_SUPPORTED_WORKERS = map[string]probes.ApplicationProbe{"engine-clean-call-requests": {
|
|
Name: "clean-call-requests",
|
|
Description: "Clean all inactive call requests from database",
|
|
LonDescription: "Remove records in call_requests database table with ttl value greater then now.",
|
|
ExecFunction: CleanCallRequestsExec,
|
|
}}
|
|
|
|
type CallRequest struct {
|
|
Id string `json:"id"`
|
|
RegisteredContractIid string `json:"registered_contract_id"`
|
|
Caller string `json:"caller"`
|
|
MoonstreamUserId string `json:"moonstream_user_id"`
|
|
Method string `json:"method"`
|
|
Parameters interface{} `json:"parameters"`
|
|
ExpiresAt time.Time `json:"expires_at"`
|
|
CreatedAt time.Time `json:"created_at"`
|
|
UpdatedAt time.Time `json:"updated_at"`
|
|
}
|
|
|
|
func CleanCallRequestsExec(ctx context.Context, dbPool *pgxpool.Pool) error {
|
|
tag, err := dbPool.Exec(
|
|
ctx,
|
|
"DELETE FROM call_requests WHERE expires_at <= NOW() - INTERVAL '1 minute';",
|
|
)
|
|
if err != nil {
|
|
return fmt.Errorf("delete execution failed, err: %v", err)
|
|
}
|
|
|
|
log.Printf("[engine] [clean-call-requests] - Deleted %d call requests", tag.RowsAffected())
|
|
return nil
|
|
}
|