1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 package fr.paris.lutece.plugins.crmclient.service.daemon;
35
36 import fr.paris.lutece.plugins.crmclient.business.ICRMItem;
37 import fr.paris.lutece.plugins.crmclient.service.processor.ICRMClientProcessor;
38 import fr.paris.lutece.plugins.crmclient.service.queue.ICRMClientQueue;
39 import fr.paris.lutece.plugins.crmclient.util.CRMException;
40 import fr.paris.lutece.portal.service.daemon.Daemon;
41 import fr.paris.lutece.portal.service.spring.SpringContextService;
42 import fr.paris.lutece.portal.service.util.AppLogService;
43
44 import org.apache.commons.lang.StringUtils;
45
46
47
48
49
50
51 public class CRMClientSenderDaemon extends Daemon
52 {
53
54
55
56 public synchronized void run( )
57 {
58 StringBuilder sbLog = new StringBuilder( );
59 ICRMClientProcessor crmClientService = SpringContextService.getBean( ICRMClientProcessor.BEAN_PROCESSOR );
60 ICRMClientQueue queue = SpringContextService.getBean( ICRMClientQueue.BEAN_SERVICE );
61
62 if ( ( queue != null ) && ( queue.size( ) > 0 ) )
63 {
64 ICRMItem crmItem = null;
65
66 do
67 {
68 crmItem = queue.consume( );
69
70 if ( crmItem != null )
71 {
72 sbLog.append( "\n- Sending " + crmItem.getClass( ).getName( ) + "..." );
73
74 boolean bIsSent = true;
75
76 try
77 {
78 crmClientService.doProcess( crmItem );
79 }
80 catch( CRMException e )
81 {
82 AppLogService.error( e.getMessage( ), e );
83
84 queue.send( crmItem );
85 bIsSent = false;
86 sbLog.append( "NOK" );
87 sbLog.append( "\n\t" + e.getMessage( ) );
88
89 break;
90 }
91
92 if ( bIsSent )
93 {
94 sbLog.append( "OK" );
95 }
96 }
97 }
98 while ( crmItem != null );
99 }
100
101 if ( StringUtils.isBlank( sbLog.toString( ) ) )
102 {
103 sbLog.append( "\nNothing to send." );
104 }
105
106 setLastRunLogs( sbLog.toString( ) );
107 }
108 }