CalculateMessagePriorities 计算所有消息的优先级
( ctx context.Context, messages []Message, calculator PriorityCalculator, )
| 411 | |
| 412 | // CalculateMessagePriorities 计算所有消息的优先级 |
| 413 | func CalculateMessagePriorities( |
| 414 | ctx context.Context, |
| 415 | messages []Message, |
| 416 | calculator PriorityCalculator, |
| 417 | ) []MessageWithPriority { |
| 418 | result := make([]MessageWithPriority, len(messages)) |
| 419 | |
| 420 | for i, msg := range messages { |
| 421 | priority, score := calculator.CalculatePriority(ctx, msg, i, len(messages)) |
| 422 | result[i] = MessageWithPriority{ |
| 423 | Message: msg, |
| 424 | Priority: priority, |
| 425 | Score: score, |
| 426 | } |
| 427 | } |
| 428 | |
| 429 | return result |
| 430 | } |
| 431 | |
| 432 | // SortMessagesByPriority 按优先级排序消息 |
| 433 | func SortMessagesByPriority(messages []MessageWithPriority, descending bool) { |