Skip to content

Commit

Permalink
Merge pull request #265 from Infosys/Auto-Batch-Job-fix
Browse files Browse the repository at this point in the history
Auto batch job fix
  • Loading branch information
jainhitesh9998 authored Feb 8, 2024
2 parents ec7f36c + c9de0c9 commit 091a86c
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 6 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@

package io.mosip.registration_client;

import io.mosip.registration.clientmanager.constant.ClientManagerConstant;

import android.app.Activity;
import android.app.AlarmManager;
import android.app.PendingIntent;
Expand All @@ -26,6 +28,9 @@

import java.util.List;
import java.util.Objects;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicLong;

import javax.inject.Inject;
Expand Down Expand Up @@ -177,7 +182,10 @@ public class MainActivity extends FlutterActivity {
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals("REGISTRATION_PACKET_UPLOAD")) {
syncRegistrationPackets(context);
createBackgroundTask("registrationPacketUploadJob");
ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(1);
scheduler.schedule(()-> {
createBackgroundTask("registrationPacketUploadJob");
}, 1, TimeUnit.MINUTES);
}
}
};
Expand Down Expand Up @@ -285,25 +293,30 @@ private void uploadRegistrationPackets(Context context) {
}

private Integer getBatchSize(){
// Default batch size is 4
List<GlobalParam> globalParams = globalParamDao.getGlobalParams();
for (GlobalParam value : globalParams) {
if (Objects.equals(value.getId(), "mosip.registration.packet_upload_batch_size")) {
return Integer.parseInt(value.getValue());
}
}
return 4;
return ClientManagerConstant.DEFAULT_BATCH_SIZE;
}

private long getIntervalMillis(String api){
AtomicLong alarmTime = new AtomicLong(System.currentTimeMillis()+60000);
// Default everyday at Noon - 12pm
String cronExp = ClientManagerConstant.DEFAULT_UPLOAD_CRON;
List<SyncJobDef> syncJobs = syncJobDefRepository.getAllSyncJobDefList();
for (SyncJobDef value : syncJobs) {
if (Objects.equals(value.getApiName(), api)) {
Log.d(getClass().getSimpleName(), String.valueOf(value.getSyncFreq()) + " Cron Expression");
alarmTime.set(CronParserUtil.getNextExecutionTimeInMillis(String.valueOf(value.getSyncFreq())));
Log.d(getClass().getSimpleName(), api + " Cron Expression : " + String.valueOf(value.getSyncFreq()));
cronExp = String.valueOf(value.getSyncFreq());
break;
}
}
return alarmTime.get();
long nextExecution = CronParserUtil.getNextExecutionTimeInMillis(cronExp);
Log.d(getClass().getSimpleName(), " Next Execution : " + String.valueOf(nextExecution));
return nextExecution;
}

public void initializeAppComponent() {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
package io.mosip.registration.clientmanager.constant;

public class ClientManagerConstant {
public static final String DEFAULT_UPLOAD_CRON = "0 0 12 * * ?";
public static final Integer DEFAULT_BATCH_SIZE = 4;
}

0 comments on commit 091a86c

Please sign in to comment.