@@ -320,37 +320,42 @@ public void handle(Either<String, JsonObject> event) {
320
320
int userMessageValueCount = 0 ;
321
321
int userMessageAttachementCount = 0 ;
322
322
323
+ // Messages
324
+ //
323
325
// Optimisation de l'envois des messages: faire des requêtes unitaires est couteux pour postgresql notament
324
326
// au niveau de la gestion des locks et de son index. Les groupes en insert .. values est bcp plus efficace
325
327
for (Object toObj : ids ){
326
- if (toObj .equals (user .getUserId ())) {
327
- continue ;
328
- }
328
+ if (toObj .equals (user .getUserId ())) continue ;
329
+
329
330
userMessageValueCount ++;
330
331
insertUserMessageBuilder .append (String .format ("('%s', '%s', %s )," , toObj , draftId , totalQuota ));
331
- if (userMessageValueCount > conversationBatchSize ) {
332
- userMessageValueCount = 0 ;
332
+ if (userMessageValueCount >= conversationBatchSize ) {
333
333
builder .prepared (insertUserMessageBuilder .deleteCharAt (insertUserMessageBuilder .length ()-1 ).toString (), new JsonArray ());
334
334
insertUserMessageBuilder = new StringBuilder (insertUserMessage );
335
+ userMessageValueCount = 0 ;
335
336
}
336
337
if (threadId != null ) {
337
338
builder .prepared (insertUserThread , new fr .wseduc .webutils .collections .JsonArray ().add (toObj .toString ()).add (threadId ).add (1 ));
338
339
}
340
+ }
341
+ if (userMessageValueCount > 0 ) {
342
+ builder .prepared (insertUserMessageBuilder .deleteCharAt (insertUserMessageBuilder .length ()-1 ).toString (), new JsonArray ());
343
+ }
344
+
345
+ // Pièces jointes
346
+ for (Object toObj : ids ){
347
+ if (toObj .equals (user .getUserId ())) continue ;
339
348
340
349
for (Object attachmentId : attachmentIds ){
341
350
userMessageAttachementCount ++;
342
351
insertUserAttachmentBuilder .append (String .format ("('%s', '%s', '%s' )," , toObj , draftId , attachmentId ));
343
- if (userMessageAttachementCount > conversationBatchSize ) {
344
- userMessageAttachementCount = 0 ;
352
+ if (userMessageAttachementCount >= conversationBatchSize ) {
345
353
builder .prepared (insertUserAttachmentBuilder .deleteCharAt (insertUserAttachmentBuilder .length ()-1 ).toString (), new JsonArray ());
346
354
insertUserAttachmentBuilder = new StringBuilder (insertUserAttachment );
355
+ userMessageAttachementCount = 0 ;
347
356
}
348
357
}
349
358
}
350
-
351
- if (userMessageValueCount > 0 ) {
352
- builder .prepared (insertUserMessageBuilder .deleteCharAt (insertUserMessageBuilder .length ()-1 ).toString (), new JsonArray ());
353
- }
354
359
if (userMessageAttachementCount > 0 ) {
355
360
builder .prepared (insertUserAttachmentBuilder .deleteCharAt (insertUserAttachmentBuilder .length ()-1 ).toString (), new JsonArray ());
356
361
}
0 commit comments