001/*- 002 * #%L 003 * HAPI FHIR JPA Server - Batch2 Task Processor 004 * %% 005 * Copyright (C) 2014 - 2024 Smile CDR, Inc. 006 * %% 007 * Licensed under the Apache License, Version 2.0 (the "License"); 008 * you may not use this file except in compliance with the License. 009 * You may obtain a copy of the License at 010 * 011 * http://www.apache.org/licenses/LICENSE-2.0 012 * 013 * Unless required by applicable law or agreed to in writing, software 014 * distributed under the License is distributed on an "AS IS" BASIS, 015 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 016 * See the License for the specific language governing permissions and 017 * limitations under the License. 018 * #L% 019 */ 020package ca.uhn.fhir.batch2.api; 021 022import com.google.common.annotations.VisibleForTesting; 023 024public interface IJobMaintenanceService { 025 /** 026 * Do not wait for the next scheduled time for maintenance. Trigger it immediately. 027 * @return true if a request to run a maintenance pass was fired, false if there was already a trigger request in queue so we can just use that one 028 */ 029 boolean triggerMaintenancePass(); 030 031 void runMaintenancePass(); 032 033 /** 034 * Forces a second maintenance run. 035 * Only to be used in tests to simulate a long running maintenance step 036 */ 037 @VisibleForTesting 038 void forceMaintenancePass(); 039 040 /** 041 * This is only to be called in a testing environment 042 * to ensure state changes are controlled. 043 */ 044 @VisibleForTesting 045 void enableMaintenancePass(boolean thetoEnable); 046}