@@ -34,6 +34,11 @@ type JobConfig struct {
34
34
RequestMem string `request_mem`
35
35
}
36
36
37
+ type RetryMessage struct {
38
+ Bucket string `bucket`
39
+ Key string `key`
40
+ }
41
+
37
42
// NewSQSHandler creates new SQSHandler instance
38
43
func NewSQSHandler (queueURL string ) * SQSHandler {
39
44
sqsHandler := new (SQSHandler )
@@ -56,7 +61,7 @@ func (handler *SQSHandler) StartServer() error {
56
61
57
62
glog .Info ("Starting a new server..." )
58
63
handler .Server = mq .NewServer (handler .QueueURL , mq .HandlerFunc (func (m * mq.Message ) error {
59
- return handler .HandleSQSMessage (m )
64
+ return handler .HandleSQSMessage (aws . StringValue ( m . SQSMessage . Body ) )
60
65
}), mq .WithClient (newClient ))
61
66
handler .Server .Start ()
62
67
glog .Info ("The server is started" )
@@ -129,10 +134,10 @@ The format of a SQS message body:
129
134
}
130
135
*/
131
136
132
- func getObjectsFromSQSMessage (m * mq. Message ) []string {
137
+ func getObjectsFromSQSMessage (msgBody string ) []string {
133
138
objectPaths := make ([]string , 0 )
134
139
mapping := make (map [string ][]interface {})
135
- msgBody := aws .StringValue (m .SQSMessage .Body )
140
+ // msgBody := aws.StringValue(m.SQSMessage.Body)
136
141
137
142
msgBodyInf , err := GetValueFromJSON ([]byte (msgBody ), []string {"Message" })
138
143
if err != nil {
@@ -189,8 +194,9 @@ to the queue and retry later (handled by `md` library). That makes sure
189
194
the message is properly handle before it actually deleted
190
195
191
196
*/
192
- func (handler * SQSHandler ) HandleSQSMessage (m * mq.Message ) error {
193
- objectPaths := getObjectsFromSQSMessage (m )
197
+ func (handler * SQSHandler ) HandleSQSMessage (jsonBody string ) error {
198
+
199
+ objectPaths := getObjectsFromSQSMessage (jsonBody )
194
200
195
201
jobNameList := make ([]string , 0 )
196
202
for _ , jobConfig := range handler .JobConfigs {
@@ -268,3 +274,19 @@ func (handler *SQSHandler) handleListJobConfigs() (string, error) {
268
274
}
269
275
return "[" + str + "]" , nil
270
276
}
277
+
278
+ /*
279
+ RetryCreateIndexingJob creates manually job
280
+ */
281
+ func (handler * SQSHandler ) RetryCreateIndexingJob (jsonBytes []byte ) error {
282
+
283
+ retryMessage := RetryMessage {}
284
+ if err := json .Unmarshal (jsonBytes , & retryMessage ); err != nil {
285
+ return err
286
+ }
287
+
288
+ str := fmt .Sprintf (`{
289
+ "Type" : "Notification",
290
+ "Message" : "{\"Records\":[{\"eventSource\":\"aws:s3\",\"awsRegion\":\"us-east-1\",\"eventName\":\"ObjectCreated:Put\",\"s3\":{\"s3SchemaVersion\":\"1.0\",\"bucket\":{\"name\":\"%s\"},\"object\":{\"key\":\"%s\"}}}]}"}` , retryMessage .Bucket , retryMessage .Key )
291
+ return handler .HandleSQSMessage (str )
292
+ }
0 commit comments