11import { timeout } from '@crowd/common'
22import { Logger , getChildLogger , getServiceLogger , logExecutionTimeV2 } from '@crowd/logging'
3+ import {
4+ SqsDeleteMessageRequest ,
5+ SqsMessage ,
6+ SqsReceiveMessageRequest ,
7+ deleteMessage ,
8+ receiveMessage ,
9+ sendMessage ,
10+ } from '@crowd/sqs'
311import { SpanStatusCode , getServiceTracer } from '@crowd/tracing'
4- import { DeleteMessageRequest , Message , ReceiveMessageRequest } from 'aws-sdk/clients/sqs'
512import moment from 'moment'
613import { SQS_CONFIG } from '../conf'
714import { processDbOperationsMessage } from '../serverless/dbOperations/workDispatcher'
815import { processNodeMicroserviceMessage } from '../serverless/microservices/nodejs/workDispatcher'
916import { NodeWorkerMessageType } from '../serverless/types/workerTypes'
1017import { sendNodeWorkerMessage } from '../serverless/utils/nodeWorkerSQS'
1118import { NodeWorkerMessageBase } from '../types/mq/nodeWorkerMessageBase'
12- import { deleteMessage , receiveMessage , sendMessage } from '../utils/sqs'
1319import { processIntegration , processWebhook } from './worker/integrations'
20+ import { SQS_CLIENT } from '@/serverless/utils/serviceSQS'
1421
1522/* eslint-disable no-constant-condition */
1623
@@ -26,24 +33,30 @@ process.on('SIGTERM', async () => {
2633 exiting = true
2734} )
2835
29- const receive = ( delayed ?: boolean ) : Promise < Message | undefined > => {
30- const params : ReceiveMessageRequest = {
36+ const receive = async ( delayed ?: boolean ) : Promise < SqsMessage | undefined > => {
37+ const params : SqsReceiveMessageRequest = {
3138 QueueUrl : delayed ? SQS_CONFIG . nodejsWorkerDelayableQueue : SQS_CONFIG . nodejsWorkerQueue ,
3239 MessageAttributeNames : ! delayed
3340 ? undefined
3441 : [ 'remainingDelaySeconds' , 'tenantId' , 'targetQueueUrl' ] ,
3542 }
3643
37- return receiveMessage ( params )
44+ const messages = await receiveMessage ( SQS_CLIENT ( ) , params )
45+
46+ if ( messages && messages . length === 1 ) {
47+ return messages [ 0 ]
48+ }
49+
50+ return undefined
3851}
3952
4053const removeFromQueue = ( receiptHandle : string , delayed ?: boolean ) : Promise < void > => {
41- const params : DeleteMessageRequest = {
54+ const params : SqsDeleteMessageRequest = {
4255 QueueUrl : delayed ? SQS_CONFIG . nodejsWorkerDelayableQueue : SQS_CONFIG . nodejsWorkerQueue ,
4356 ReceiptHandle : receiptHandle ,
4457 }
4558
46- return deleteMessage ( params )
59+ return deleteMessage ( SQS_CLIENT ( ) , params )
4760}
4861
4962async function handleDelayedMessages ( ) {
@@ -81,7 +94,7 @@ async function handleDelayedMessages() {
8194 if ( message . MessageAttributes . targetQueueUrl ) {
8295 const targetQueueUrl = message . MessageAttributes . targetQueueUrl . StringValue
8396 messageLogger . debug ( { tenantId, targetQueueUrl } , 'Successfully delayed a message!' )
84- await sendMessage ( {
97+ await sendMessage ( SQS_CLIENT ( ) , {
8598 QueueUrl : targetQueueUrl ,
8699 MessageGroupId : tenantId ,
87100 MessageDeduplicationId : `${ tenantId } -${ moment ( ) . valueOf ( ) } ` ,
@@ -129,7 +142,7 @@ async function handleMessages() {
129142 } )
130143 handlerLogger . info ( 'Listening for messages!' )
131144
132- const processSingleMessage = async ( message : Message ) : Promise < void > => {
145+ const processSingleMessage = async ( message : SqsMessage ) : Promise < void > => {
133146 await tracer . startActiveSpan ( 'ProcessMessage' , async ( span ) => {
134147 const msg : NodeWorkerMessageBase = JSON . parse ( message . Body )
135148
0 commit comments