Maarch Capture offre la possibilité de reprendre un batch de capture interrompu à cause d'une erreur.
Imaginons un batch de capture de mail tombé en erreur à cause de la communication avec Maarch Courrier (webservice indisponible).
Il est possible à l'aide d'une option de commande du batch Maarch Capture de reprendre ce batch à la dernière étape effectuée.
Pour ce faire il faut préciser l'option continue et le nom du batch, et l'identifiant du batch qui a planté.
ex :
php MaarchCapture.php continue -BatchName MAARCH_MAIL_TO_MC -BatchId BMAARCH_MAIL_TO_MC-1519308863-1302369956
L'identifiant du batch correspond au répertoire de travail du batch planté dans le répertoire temporaire de Maarch Capture.
Si une erreur est survenue lors d'une capture de boites mail.
RESTORE_BATCHES.sh
:5 variables de configuration sont présentes :
MAARCH_CAPTURE_PATH |
Spécifiez le chemin de maarch_capture |
CAPTURE_CONFIG_NAME |
Spécifiez le nom de votre fichier xml (sans l'extension) de capture (ex : Capture) |
BATCH_NAME_TARGET |
Spécifiez le nom du batch à reprendre |
FILES_TO_SCAN_PATH |
Spécifiez le chemin des fichiers générés par maarch_capture |
START_DATE |
Spécifiez la date à laquelle commencer la reprise |
Commande à lancer :
Vérifiez que vous lancez le script avec le même priopriétaire que ceux utilisés par les scripts de maarch_capture !
chmod +x RESTORE_BATCHES.sh && ./RESTORE_BATCHES.sh
Un message vous avertira qu'un fichier de log a été généré à la fin de l'analyse :
Terminé ! Vous pouvez consulter les logs: /opt/maarch/MaarchCapture//result.log
result.log
Voici ce que vous pourrez trouvez si le script a analyse un batch sain (qui s'est bien déroulé):
********************************************************************************
** Maarch Capture **
** (c) 2013 Maarch SAS **
********************************************************************************
Continue Capture process...
Instanciate new Capture processor...
Load batch 'MAIL_1' with id 'BMAIL_1-1530267121-1309784917'...
Batch loaded
Load workflow...
Workflow 'MAIL_1' loaded
Le script n'a rien fait de particulier pour ce cas-ci
Voici le cas d'une reprise d'un batch dont la capture de mail a été interrompu :
********************************************************************************
** Maarch Capture **
** (c) 2013 Maarch SAS **
********************************************************************************
Continue Capture process...
Instanciate new Capture processor...
Load batch 'MAIL_1' with id 'BMAIL_1-1530267121-1309784917'...
Batch loaded
Load workflow...
Workflow 'MAIL_1' loaded
Get workflow next step name...
Next step name is 'SendToMaarch'
MaarchCapture step inputs: Array
(
[0] => WSDL
[1] => Process
[2] => CatchError
[3] => configFile
)
MaarchCapture step: Array
(
[positional] => Array
(
)
[executable] => MaarchCapture.php
[command] => Array
(
[opts] => Array
(
[positional] => Array
(
[0] => BatchId
[1] => BMAIL_1-1530267121-1309784917
)
[ConfigName] => Capture_miviludes
[executable] => continue
[BatchName] => MAIL_1
[BatchId] => BMAIL_1-1530267121-1309784917
)
[name] => continue
)
)
Capture::processStep(SendToMaarch)
Nous voyons ici que le script va essayer refaire l'étape qui était en échec précédemment :
Next step name is 'SendToMaarch'