Skip to content

Commit

Permalink
fix(jobs): add an upgrade task to delete the job records from the dat…
Browse files Browse the repository at this point in the history
…abase (#30933)
  • Loading branch information
gortiz-dotcms committed Jan 7, 2025
1 parent 77740ac commit 7dfc5fa
Show file tree
Hide file tree
Showing 2 changed files with 69 additions and 1 deletion.
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
package com.dotmarketing.startup.runonce;

import com.dotmarketing.common.db.DotConnect;
import com.dotmarketing.exception.DotDataException;
import com.dotmarketing.exception.DotRuntimeException;
import com.dotmarketing.startup.StartupTask;

import java.util.ArrayList;

public class Task250107RemoveEsReadOnlyMonitorJob implements StartupTask {


private final String JOB_NAME = "EsReadOnlyMonitorJob";
private final String TRIGGER_NAME = "trigger29";
private final String CRON_TABLE_NAME = "qrtz_excl_cron_triggers";
private final String TRIGGER_TABLE_NAME = "qrtz_excl_triggers";
private final String JOB_TABLE_NAME = "qrtz_excl_job_details";

/**
* Determines if the task should be forced to run.
*
* @return true if EsReadOnlyMonitorJob is found, false otherwise.
*/
@Override
public boolean forceRun() {
String sql=String.format("SELECT * FROM %s WHERE job_name=?", JOB_TABLE_NAME);
DotConnect dc=new DotConnect();
dc.setSQL(sql);

dc.addParam(JOB_NAME);
try {
ArrayList results=dc.loadResults();
if (!results.isEmpty()){
return true;
}
} catch (DotDataException e) {
e.printStackTrace();
}
return false;
}

@Override
public void executeUpgrade() throws DotDataException, DotRuntimeException {
removeCron();
removeTrigger();
removeJob();
}

private void removeJob() throws DotDataException {
DotConnect dc = new DotConnect();
dc.setSQL(String.format("DELETE FROM %s WHERE job_name = %s", JOB_TABLE_NAME, JOB_NAME));
dc.loadResult();
}

private void removeTrigger() throws DotDataException {
DotConnect dc = new DotConnect();
dc.setSQL(String.format("DELETE FROM %s WHERE job_name = %s", TRIGGER_TABLE_NAME, JOB_NAME));
dc.loadResult();
}

private void removeCron() throws DotDataException {
DotConnect dc = new DotConnect();
dc.setSQL(String.format("DELETE FROM %s WHERE trigger_name = %s", CRON_TABLE_NAME, TRIGGER_NAME));
dc.loadResult();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -252,6 +252,7 @@
import com.dotmarketing.startup.runonce.Task241014AddTemplateValueOnContentletIndex;
import com.dotmarketing.startup.runonce.Task241015ReplaceLanguagesWithLocalesPortlet;
import com.dotmarketing.startup.runonce.Task241016AddCustomLanguageVariablesPortletToLayout;
import com.dotmarketing.startup.runonce.Task250107RemoveEsReadOnlyMonitorJob;
import com.google.common.collect.ImmutableList;

import java.util.ArrayList;
Expand Down Expand Up @@ -576,7 +577,8 @@ public static List<Class<?>> getStartupRunOnceTaskClasses() {
.add(Task241013RemoveFullPathLcColumnFromIdentifier.class)
.add(Task241014AddTemplateValueOnContentletIndex.class)
.add(Task241015ReplaceLanguagesWithLocalesPortlet.class)
.add(Task241016AddCustomLanguageVariablesPortletToLayout.class)
.add(Task241016AddCustomLanguageVariablesPortletToLayout.class)
.add(Task250107RemoveEsReadOnlyMonitorJob.class)
.build();
return ret.stream().sorted(classNameComparator).collect(Collectors.toList());
}
Expand Down

0 comments on commit 7dfc5fa

Please sign in to comment.