task

package
v1.3.11 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 9, 2026 License: Apache-2.0 Imports: 2 Imported by: 0

Documentation

Index

Constants

View Source
const (
	UpdateUserGamificationScoresTask      = "user:gamification:update_scores_task"
	UpdateSingleUserGamificationScoreTask = "user:gamification:update_single_score_task"
	AutoRefundExpiredDisputesTask         = "dispute:auto_refund_expired"
	AutoRefundSingleDisputeTask           = "dispute:auto_refund_single"
	MerchantPaymentNotifyTask             = "payment:merchant_notify"
	SyncOrdersToClickHouseTask            = "order:sync_to_clickhouse"
	RefundExpiredRedEnvelopesTask         = "redenvelope:refund_expired"
	CleanupUnusedUploadsTask              = "upload:cleanup_unused"
	SettlePendingPaymentsTask             = "order:settle_pending_payments"
)
View Source
const (
	QueueWhitelistOnly = "whitelist_only"
	QueueWebhook       = "webhook"
	QueueDefault       = "default"
)
View Source
const (
	TaskTypeOrderSync         = "order_sync"
	TaskTypeUserGamification  = "user_gamification"
	TaskTypeDisputeRefund     = "dispute_auto_refund"
	TaskTypeRedEnvelopeRefund = "redenvelope_auto_refund"
	TaskTypeCleanupUploads    = "cleanup_unused_uploads"
	TaskTypeSettlePending     = "settle_pending_payments"
)

管理员可下发的任务类型标识

Variables

View Source
var DispatchableTasks = []TaskMeta{
	{
		Type:         TaskTypeOrderSync,
		AsynqTask:    SyncOrdersToClickHouseTask,
		Name:         "订单同步",
		Description:  "同步订单数据到 ClickHouse",
		SupportsTime: true,
		MaxRetry:     5,
		Queue:        QueueDefault,
	},
	{
		Type:         TaskTypeUserGamification,
		AsynqTask:    UpdateSingleUserGamificationScoreTask,
		Name:         "用户积分更新",
		Description:  "更新用户的点数积分",
		SupportsTime: false,
		MaxRetry:     5,
		Queue:        QueueWhitelistOnly,
	},
	{
		Type:         TaskTypeDisputeRefund,
		AsynqTask:    AutoRefundExpiredDisputesTask,
		Name:         "争议自动退款",
		Description:  "处理过期争议的自动退款",
		SupportsTime: false,
		MaxRetry:     5,
		Queue:        QueueDefault,
	},
	{
		Type:         TaskTypeRedEnvelopeRefund,
		AsynqTask:    RefundExpiredRedEnvelopesTask,
		Name:         "红包自动退款",
		Description:  "处理过期红包的自动退款",
		SupportsTime: false,
		MaxRetry:     5,
		Queue:        QueueDefault,
	},
	{
		Type:         TaskTypeCleanupUploads,
		AsynqTask:    CleanupUnusedUploadsTask,
		Name:         "清理未使用上传",
		Description:  "清理超过1小时未使用的上传文件",
		SupportsTime: false,
		MaxRetry:     3,
		Queue:        QueueDefault,
	},
	{
		Type:         TaskTypeSettlePending,
		AsynqTask:    SettlePendingPaymentsTask,
		Name:         "延迟到账结算",
		Description:  "结算到期的延迟到账订单,将在途资金转入可用余额",
		SupportsTime: false,
		MaxRetry:     5,
		Queue:        QueueDefault,
	},
}

DispatchableTasks 可下发的任务列表

RedisOpt asynq Redis 连接配置(兼容 Standalone/Sentinel/Cluster)

Functions

func NewRedisConnOpt

func NewRedisConnOpt() asynq.RedisConnOpt

NewRedisConnOpt 根据配置返回对应的 asynq Redis 连接选项

func PrefixedQueue

func PrefixedQueue(queue string) string

PrefixedQueue 返回带前缀的队列名,用于 Cluster 模式隔离

Types

type TaskMeta

type TaskMeta struct {
	Type         string
	AsynqTask    string
	Name         string
	Description  string
	SupportsTime bool
	MaxRetry     int
	Queue        string
}

TaskMeta 任务元数据

func GetTaskMeta

func GetTaskMeta(taskType string) *TaskMeta

GetTaskMeta 根据任务类型获取元数据

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL