func (j *Job) Delete(ctx context.Context) error {
	j.mu.Lock()
	defer j.mu.Unlock()
	if j.deleted {
		return nil
	}
	_, err := j.tx.Exec(ctx, `DELETE FROM gue_jobs WHERE job_id = $1`, j.ID)
	if err != nil {
		return err
	}
	j.deleted = true
	return nil
}
Delete marks this job as complete by deleting it form the database.

You must also later call Done() to return this job's database connection to
the pool.
package gue
import (
	"context"
	"fmt"
	"sync"
	"time"
	"github.com/jackc/pgtype"
	"github.com/vgarvardt/gue/v3/adapter"
)
type Backoff func(retries int) time.Duration
type Job struct {
	ID int64
	Queue string
	Priority int16
	RunAt time.Time
	Type string
	Args []byte
	ErrorCount int32
	LastError pgtype.Text
	mu      sync.Mutex
	deleted bool
	pool    adapter.ConnPool
	tx      adapter.Tx
	backoff Backoff
}
func (j *Job) Tx() adapter.Tx {
	j.mu.Lock()
	defer j.mu.Unlock()
	return j.tx
}