-#include <fstream>
-#include <TFile.h>
-#include <TSystem.h>
+//#include <fstream>
+//#include <TFile.h>
+//#include <TSystem.h>
+
/*
+
+ Process all jobs specified in the job.list file
+ Concurent agents acces the list
+ Once starting to procces given job the jonb is locked
+
+*/
+
+
+
+/*
+
+
.L $ALICE_ROOT/TPC/macros/testTPC/AliTPCjobs.cxx+
+
+
AliTPCJobs jobs;
jobs.fJobFile="job.list"
+jobs.ProcessAllJobs();
*/
+
+
class AliTPCJobs : public TNamed{
public:
AliTPCJobs();
TString fJobFile;
TString fWorkDir;
+ ClassDef(AliTPCJobs,0)
};
+ ClassImp(AliTPCJobs)
AliTPCJobs::AliTPCJobs(){
//
Int_t counter=0;
while (GetNextJob()){
//
- printf("PROCESSING JOB\n",counter);
+ printf("PROCESSING JOB\t%d\n",counter);
counter++;
if (!GetNextJob()) break;
}
Bool_t AliTPCJobs::GetNextJob(){
- ifstream in;
- in.open(fJobFile);
+ //
+ // GetNextJob - get job from the list which is not locked
+ //
+ ifstream ins;
+ ins.open(fJobFile);
TString id;
TString inputData;
TString outputDir;
TString action;
Bool_t hasJob=kFALSE;
- while(in.good()) {
- in>>id;
- in>>inputData;
- in>>outputDir;
- in>>action;
+ while(ins.good()) {
+ ins>>id;
+ ins>>inputData;
+ ins>>outputDir;
+ ins>>action;
if (!IsLocked(id)){
hasJob=kTRUE;
break;
SetLock(jobID);
if (action.Contains("COPY")){
char command[10000];
- sprintf(command,"xrdcp -d 1 -DIFirstConnectMaxCnt 2 -DIConnectTimeout 2 -DIRequestTimeout 2 -DIMaxRedirectcount 2 -DIRedirCntTimeout 2 %s\t%s\n",inputData.Data(), outputDir.Data());
+ sprintf(command,"xrdcp -DIFirstConnectMaxCnt 4 -DIConnectTimeout 4 -DIRequestTimeout 4 -DIMaxRedirectcount 4 -DIRedirCntTimeout 4 %s\t%s\n",inputData.Data(), outputDir.Data());
printf("Exec\t%s\n", command);
gSystem->Exec(command);
//TFile::Cp(inputData.Data(), outputDir.Data());
+ }else{
+ char command[10000];
+ sprintf(command,"$ALICE_ROOT/TPC/macros/testTPC/action.sh %s %s %s %s", jobID.Data(), inputData.Data(), outputDir.Data(), action.Data());
+ printf("%s\n\n",command);
+ gSystem->Exec(command);
+ printf("\n\n");
+
}
+
SetDone(jobID);
}
+
+
+
+void AliTPCjobs(){
+ //
+ //
+ //
+ AliTPCJobs jobs;
+ jobs.fJobFile="job.list";
+ jobs.ProcessAllJobs();
+}