Skip to content

Commit

Permalink
initial delay for @start tasks
Browse files Browse the repository at this point in the history
createBackup from script
version 3.2.0
  • Loading branch information
mdzio committed Aug 28, 2022
1 parent e4011bc commit 89b9cd0
Show file tree
Hide file tree
Showing 12 changed files with 31 additions and 8 deletions.
1 change: 1 addition & 0 deletions .gitignore
Expand Up @@ -2,3 +2,4 @@
/dist-ccu/build
/ccu-historian/run/*.log
/ccu-historian/run/*.lck
/.metadata/
4 changes: 3 additions & 1 deletion README.md
Expand Up @@ -50,7 +50,9 @@ Die Installation und Konfiguration ist im [Handbuch](https://github.com/mdzio/cc

## Entwicklungsumgebung

Der CCU-Historian ist größtenteils in der [Programmiersprache Apache Groovy](http://groovy-lang.org) geschrieben. Weitere Programmiersprachen sind Java und JavaScript. Als Entwicklungsumgebung wird die [Eclipse IDE](http://www.eclipse.org) in der Variante für Java-Entwickler verwendet. Das Paket ist auf der [Download-Seite](https://www.eclipse.org/downloads/packages/) zu finden. Des Weiteren wird das [Groovy-Eclipse-Plugin](https://github.com/groovy/groovy-eclipse/wiki) ab der V4.0.0 benötigt. Dieses Plugin ist im Eclipse Marketplace (*Help**Eclipse Marketplace*) zu finden und sollte automatisch zur Installation angeboten werden, wenn das CCU-Historian-Projekt importiert wird. Über *File**Import**Projects from Git* kann direkt das Repository geklont werden. Die Zielplattform ist Java Version 8.
Der CCU-Historian ist größtenteils in der [Programmiersprache Apache Groovy](http://groovy-lang.org) geschrieben. Weitere Programmiersprachen sind Java und JavaScript. Als Entwicklungsumgebung wird die [Eclipse IDE](http://www.eclipse.org) ab der V2022-06 in der Variante für Java-Entwickler verwendet. Das Paket ist auf der [Download-Seite](https://www.eclipse.org/downloads/packages/) zu finden. Des Weiteren wird das [Groovy-Eclipse-Plugin](https://github.com/groovy/groovy-eclipse/wiki) ab der V4.24 benötigt. Dieses Plugin ist im Eclipse Marketplace (*Help**Eclipse Marketplace*) zu finden und sollte automatisch zur Installation angeboten werden, wenn das CCU-Historian-Projekt importiert wird. Über *File**Import**Projects from Git* kann direkt das Repository geklont werden. Die Zielplattform ist Java Version 8.

Für die Distribution als CCU-Add-On muss unter *Window**Preferences**Groovy**Compiler* die V2.5.17 eingestellt werden. Für die anderen Distributionen V3.0.11.

Alle Beiträge zum Projekt müssen unter die [GNU General Public License V3](LICENSE.txt) gestellt werden. Die Lizenzen von verwendeten Bibliotheken müssen mit dieser kompatibel sein.

Expand Down
2 changes: 1 addition & 1 deletion ccu-historian/build.properties
@@ -1,2 +1,2 @@
# version of this build
version=3.1.1
version=3.2.0
2 changes: 1 addition & 1 deletion ccu-historian/src/mdz/ccuhistorian/Database.groovy
Expand Up @@ -732,7 +732,7 @@ public class Database implements Storage {
}
}

private synchronized void createBackup(String fileName) {
public synchronized void createBackup(String fileName) {
connect()
log.info "Creating backup of database to file $fileName"
long start=System.currentTimeMillis()
Expand Down
6 changes: 4 additions & 2 deletions ccu-historian/src/mdz/ccuhistorian/DatabaseSystem.groovy
Expand Up @@ -36,7 +36,9 @@ import groovy.transform.CompileStatic
@Log
@CompileStatic
public class DatabaseSystem extends BaseSystem {


private final static long ATSTART_TASK_DELAY = 3000; // [ms]

ExtendedStorage extendedStorage

private Database internalDatabase
Expand Down Expand Up @@ -85,7 +87,7 @@ public class DatabaseSystem extends BaseSystem {
// schedule task
if (task.cron=="@start") {
// run once
executeTask(task, 0, {})
executeTask(task, ATSTART_TASK_DELAY, {})
} else {
// setup cron
Cron cron=cparser.parse(task.cron)
Expand Down
7 changes: 6 additions & 1 deletion ccu-historian/src/mdz/ccuhistorian/ExtendedStorage.groovy
Expand Up @@ -132,7 +132,12 @@ class ExtendedStorage implements Storage {
fireOnRead()
return storage.replaceTimeSeries(dstDp, srcSeries, startTime, endTime)
}


public void createBackup(String fileName) {
fireOnRead()
storage.createBackup(fileName)
}

String getConfig(String name) {
return storage.getConfig(name)
}
Expand Down
2 changes: 1 addition & 1 deletion ccu-historian/src/mdz/ccuhistorian/Main.groovy
Expand Up @@ -24,7 +24,7 @@ import mdz.hc.persistence.Storage

class Main {

public static String version='3.1.1'
public static String version='3.2.0'

private static final Logger log=Logger.getLogger(Main.class.name)
private static Main main
Expand Down
1 change: 1 addition & 0 deletions dist-generic/src/ccu-historian-sample.config
Expand Up @@ -28,6 +28,7 @@
// database.pgEnable=false
// database.pgPort=5435
// database.pgAllowOthers=false
// database.tasks ... (s.a. https://github.com/mdzio/ccu-historian/wiki#automatische-ausführung-von-skripten)
// webServer.port=80
// webServer.dir='./webapp'
// webServer.logLevel=Level.WARNING
Expand Down
2 changes: 2 additions & 0 deletions external-libs/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
eclipse.preferences.version=1
encoding/<project>=UTF-8
6 changes: 6 additions & 0 deletions hc-utils/src/mdz/hc/persistence/BackupStorage.groovy
@@ -0,0 +1,6 @@
package mdz.hc.persistence

interface BackupStorage {

void createBackup(String filename)
}
4 changes: 4 additions & 0 deletions hc-utils/src/mdz/hc/persistence/ReadOnlyDecorator.groovy
Expand Up @@ -111,6 +111,10 @@ public class ReadOnlyDecorator implements Storage {
throw new Exception('Storage is read only')
}

@Override void createBackup(String fileName) {
storage.createBackup(fileName)
}

@Override
public String getConfig(String name) {
storage.getConfig(name)
Expand Down
2 changes: 1 addition & 1 deletion hc-utils/src/mdz/hc/persistence/Storage.groovy
Expand Up @@ -19,5 +19,5 @@ package mdz.hc.persistence

import groovy.lang.Closure;

public interface Storage extends DataPointStorage, HistoryStorage, ConfigStorage {
public interface Storage extends DataPointStorage, HistoryStorage, ConfigStorage, BackupStorage {
}

0 comments on commit 89b9cd0

Please sign in to comment.