MCPcopy Create free account
hub / github.com/temporalio/temporal / getMessageCountAndLastID

Method getMessageCountAndLastID

common/persistence/sql/queue_v2.go:439–466  ·  view source on GitHub ↗
(
	ctx context.Context,
	row *sqlplugin.QueueV2MetadataRow,
)

Source from the content-addressed store, hash-verified

437}
438
439func (q *queueV2) getMessageCountAndLastID(
440 ctx context.Context,
441 row *sqlplugin.QueueV2MetadataRow,
442) (messageCount int64, lastMessageID int64, err error) {
443 var ok bool
444 lastMessageID, ok, err = q.getMaxMessageID(ctx, row.QueueType, row.QueueName, q.DB)
445 if err != nil {
446 return 0, 0, serviceerror.NewUnavailablef(
447 "getLastMessageID operation failed for queue with type %v and name %v. Error: %v",
448 row.QueueType,
449 row.QueueName,
450 err,
451 )
452 }
453 if !ok {
454 return 0, -1, nil // Empty queue
455 }
456 qm, err := q.extractQueueMetadata(row)
457 if err != nil {
458 return 0, 0, err
459 }
460 partition, err := persistence.GetPartitionForQueueV2(row.QueueType, row.QueueName, qm)
461 if err != nil {
462 return 0, 0, err
463 }
464 messageCount = lastMessageID - partition.MinMessageId + 1
465 return messageCount, lastMessageID, nil
466}

Callers 1

ListQueuesMethod · 0.95

Calls 3

getMaxMessageIDMethod · 0.95
extractQueueMetadataMethod · 0.95
GetPartitionForQueueV2Function · 0.92

Tested by

no test coverage detected