refs #1282: New Accounting: IS-Collector doesn't start correctly after upgrade to ghn 6.0.0
https://support.d4science.org/issues/1282 git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/trunk/accounting/accounting-lib@120287 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
parent
c5134be2b6
commit
6ef06f9ecd
|
@ -113,6 +113,7 @@ public abstract class AccountingPersistenceBackendFactory {
|
||||||
protected static AccountingPersistenceBackend rediscoverAccountingPersistenceBackend(AccountingPersistenceBackend actual, String scope){
|
protected static AccountingPersistenceBackend rediscoverAccountingPersistenceBackend(AccountingPersistenceBackend actual, String scope){
|
||||||
long now = Calendar.getInstance().getTimeInMillis();
|
long now = Calendar.getInstance().getTimeInMillis();
|
||||||
Long lastCheckTimestamp = fallbackLastCheck.get(scope);
|
Long lastCheckTimestamp = fallbackLastCheck.get(scope);
|
||||||
|
logger.trace("Last check was {}", lastCheckTimestamp);
|
||||||
|
|
||||||
if( (lastCheckTimestamp + FALLBACK_RETRY_TIME) <= now ){
|
if( (lastCheckTimestamp + FALLBACK_RETRY_TIME) <= now ){
|
||||||
logger.debug("The {} for scope {} is {}. Is time to rediscover if there is another possibility.",
|
logger.debug("The {} for scope {} is {}. Is time to rediscover if there is another possibility.",
|
||||||
|
@ -138,12 +139,18 @@ public abstract class AccountingPersistenceBackendFactory {
|
||||||
|
|
||||||
}else{
|
}else{
|
||||||
// Renewing timestamp
|
// Renewing timestamp
|
||||||
|
logger.trace("Renewing Last check Timestamp. The new one will be {}", now);
|
||||||
fallbackLastCheck.put(scope, now);
|
fallbackLastCheck.put(scope, now);
|
||||||
|
lastCheckTimestamp = fallbackLastCheck.get(scope);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
logger.debug("The {} for scope {} is going to be used is {}. Next retry in {} msec",
|
long nextCheck = (lastCheckTimestamp + FALLBACK_RETRY_TIME) - Calendar.getInstance().getTimeInMillis();
|
||||||
AccountingPersistenceBackend.class.getSimpleName(), scope, actual.getClass().getSimpleName(), FALLBACK_RETRY_TIME);
|
float nextCheckInSec = nextCheck/1000;
|
||||||
|
logger.debug("The {} for scope {} is going to be used is {}. Next retry in {} msec (about {} sec)",
|
||||||
|
AccountingPersistenceBackend.class.getSimpleName(), scope,
|
||||||
|
actual.getClass().getSimpleName(), nextCheck, nextCheckInSec);
|
||||||
|
|
||||||
return actual;
|
return actual;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -103,22 +103,27 @@ public class AccountingPersistenceBackendTest {
|
||||||
@Test
|
@Test
|
||||||
public void testScopeRecheck() throws Exception {
|
public void testScopeRecheck() throws Exception {
|
||||||
ScopeProvider.instance.set("/fakeScope");
|
ScopeProvider.instance.set("/fakeScope");
|
||||||
AccountingPersistenceBackendFactory.getPersistenceBackend();
|
logger.debug("Going to check First Time");
|
||||||
|
AccountingPersistenceBackend first = AccountingPersistenceBackendFactory.getPersistenceBackend();
|
||||||
|
logger.debug("First {} : {}", AccountingPersistenceBackend.class.getSimpleName(), first);
|
||||||
Long firstCheck = AccountingPersistenceBackendFactory.getFallbackLastCheck(ScopeProvider.instance.get());
|
Long firstCheck = AccountingPersistenceBackendFactory.getFallbackLastCheck(ScopeProvider.instance.get());
|
||||||
logger.debug("First Check Time {}", firstCheck);
|
logger.debug("First Check Time {}", firstCheck);
|
||||||
|
|
||||||
long startTime = Calendar.getInstance().getTimeInMillis();
|
long startTime = Calendar.getInstance().getTimeInMillis();
|
||||||
long endTime = startTime;
|
long endTime = startTime;
|
||||||
|
|
||||||
while(endTime <= (startTime + (AccountingPersistenceBackendFactory.FALLBACK_RETRY_TIME+1000))){
|
while(endTime <= (startTime + (AccountingPersistenceBackendFactory.FALLBACK_RETRY_TIME + 100))){
|
||||||
endTime = Calendar.getInstance().getTimeInMillis();
|
endTime = Calendar.getInstance().getTimeInMillis();
|
||||||
}
|
}
|
||||||
|
|
||||||
AccountingPersistenceBackendFactory.getPersistenceBackend();
|
logger.debug("Going to check Second Time");
|
||||||
|
AccountingPersistenceBackend second = AccountingPersistenceBackendFactory.getPersistenceBackend();
|
||||||
|
logger.debug("Second {} : {}", AccountingPersistenceBackend.class.getSimpleName(), second);
|
||||||
Long secondCheck = AccountingPersistenceBackendFactory.getFallbackLastCheck(ScopeProvider.instance.get());
|
Long secondCheck = AccountingPersistenceBackendFactory.getFallbackLastCheck(ScopeProvider.instance.get());
|
||||||
logger.debug("Second Check Time {}", secondCheck);
|
logger.debug("Second Check Time {}", secondCheck);
|
||||||
|
|
||||||
Assert.assertNotEquals(firstCheck, secondCheck);
|
Assert.assertNotEquals(firstCheck, secondCheck);
|
||||||
|
Assert.assertEquals(first, second);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,11 +3,6 @@
|
||||||
*/
|
*/
|
||||||
package org.gcube.accounting.persistence;
|
package org.gcube.accounting.persistence;
|
||||||
|
|
||||||
import java.io.BufferedWriter;
|
|
||||||
import java.io.File;
|
|
||||||
import java.io.FileWriter;
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.io.PrintWriter;
|
|
||||||
import java.io.StringWriter;
|
import java.io.StringWriter;
|
||||||
import java.net.URL;
|
import java.net.URL;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
|
|
Loading…
Reference in New Issue